2021-9-28 그림으로 배우는 Http & Network (4주차)
결과를 전달하는 HTTP 상태 코드
4.1 상태코드는 서버로부터 리퀘스트 결과를 전달한다
4.2 2xx 성공
2xx 리스폰스는 리퀘스트가 정상으로 처리되었음을 나태낸다.
- 200 OK
- 204 No Content - 리퀘스트를 처리하는 데는 성공했지만 리스폰스에 엔티티 바디를 포함하지 않는다.
- 206 Partial Content - Range에 의해서 범위가 지정된 리퀘스트에 의해서 서버가 부분적 GET 리퀘스트를 받았음을 나타낸다. 리스폰스에는 지정된 범위의 엔티티가 포함되게 된다
3xx 리다이렉트 (Redirection)
3xx 리스폰스는 리퀘스트가 정상적으로 처리를 종료하기 위해 브라우저 측에서 특별한 처리를 수행해야 함을 나타낸다.
웹 브라우저는 3xx 응답 결과에 Location 헤더가 있으면, Location 위치로 자동 이동하게 한다 (리다이렉트)
- 301 Moved Permanently - 리소스의 URI가 영구적으로 이동
PRG(Post/Redirect/Get)
- Post로 주문 후에 웹 브라우저를 새로고침 하면 - 중복 주문이 될 수 있다.
- 그래서 Post 로 주문 후에 주문 결과 화면을 GET 메소드로 리다이렉트.
- 302 Found - 이 리스폰스는 리퀘스트된 리소스에는 새로운 URI가 할당되어 있기 때문에, 그 URI를 참조해 주길 바란다는 의미를 갖고있다.
- 303 See Other - 이 리스폰스는 리퀘스트에 대한 리소스는 다른 URI에 있기 때문에 GET 메소드를 사용해서 얻어야 한다는 것을 나타내고 있다. - GET 메소드로 얻어야 한다는 걸 명확하게 표시
-
304 Not Modified - 클라이언트가 조건부 리퀘스트를 했을 때 리소스에 대한 엑세스는 허락하지만, 조건이 충족되지 않음을 표시 - 3xx에 분류되어있지만 리다이렉트와는 관계가 없다.
-
307 Temporary Redirect - 302와 같은 의미를 지내지만 POST에서 GET으로 치환을 하지 않는다. - 메서드가 변하면 안됨.
4xx 클라이언트 에러(Client Error)
4xx 리스폰스는 클라이언트의 원인으로 에러가 발생했음을 나타낸다.
- 400 Bad Request - 리퀘스트의 구문이 잘못되었음을 나타내고 있다. 리퀘스트 내용을 재검토하고 나서 재송신할 필요가 있다.
- 401 Unauthorized - 송신한 리퀘스트에 HTTP 인증 정보가 필요하다는 것을 나타낸다. 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명한다.
- 403 Forbidden - 리퀘스트된 리소스의 액세스가 거부되었음을 나다낸다. 이유는 엔티티 바디에 기재해서 유저 측에 표시
- 404 Not Found - 리퀘스트한 리소스가 서버상에 없다는것을 나타낸다.
5xx 서버 에러(Server Error)
- 500 Internal Server Error - 서버에서 리퀘스트를 처리하는 도중에 에러가 발생
- 503 Service Unavaliable - 일시적으로 서버가 과부하 상태이거나 점검중이기 때문에 현재 리퀘스트를 처리할 수 없음을 나타내고 있다.
Written on September 28, 2021