HTTP status code란?
HTTP Response의 상태라인에 담긴다.
클라이언트가 보낸 HTTP 요청에 대한 서버의 응답 코드로, 상태 코드에 따라 요청의 성공/실패 여부를 판단한다.
HTTP status code를 알아야 하는 이유
REST API에서 HTTP를 사용하는것이 일반적이기 때문에 REST API를 설계하려면 HTTP status code를 목적에 맞게 사용할 수 있어야 한다.
서버가 클라이언트에 상태 코드를 보내주고 클라이언트를 이를 가지고 다음 행동을 취하기 때문에 프론트엔드와의 협업 과정에서 매우 중요하다.
HTTP 상태 코드 분류
상태 코드의 첫 번째 숫자에 따라 크게 5가지 분류 된다.
요청을 받았으며 작업을 계속함을 의미한다.(이 상태 코드는 거의 쓰이지 않는다.)
전송 프로토콜 수준의 정보 교환
요청을 성공적으로 받았으며, 인식했고, 수용함을 의미한다.
요청 완료를 위해 추가 작업 조치가 필요함을 의미한다.
요청의 문법이 잘못되었거나 요청을 처리할 수 없음을 의미한다.
4xx 코드는 클라이언트와 직접적인 관련이 있는 코드이기 때문에 중요하다.
400, 401, 403, 404 코드는 자주 쓰이기 때문에 외우는것도 좋을것같다.
서버가 명백히 유효한 요청에 대해 충족을 실패했음을 의미한다.
HTTP method란?
HTTP 메서드는 클라이언트가 웹 서버에게 사용자 요청의 목적이나 종류를 알리는 수단이다. 최초의 HTTP에서는 GET 메서드 하나밖에 없었지만 이후 다양한 메서드들이 생겨났다.****
주요 메서드
URL에 데이터를 담아 보내기 때문에 보안 위험이 존재
메시지 바디를 통해 데이터를 전달한다.
기타 메서드
HTTP 메서드의 속성
안전(Safe Method)
계속해서 메서드를 호출해도 리소스를 변경하지 않는다는 뜻이다. 주요 메서드중에는 GET 메서드가 안전하다고 볼 수 있다.
멱등(Idempotent Methods)
메서드를 계속 호출해도 결과가 똑같다는 뜻이다. GET, PUT, DELETE는 멱등하다고 볼 수 있지만 POST나 PATCH는 멱등하다고 볼 수 없다.
캐시가능(Cacheable Methods)
캐시가능하다는 말은 말 그대로 캐싱을 해서 데이터를 효율적으로 가져올 수 있다는 뜻이다. GET, HEAD, POST, PATCH가 캐시가 가능하지만 실제로는 GET과 HEAD만 주로 캐싱이 쓰인다고 한다.