HTTP 상태 코드

WOOK JONG KIM·2023년 1월 10일
0

Http&Network

목록 보기
5/12
post-thumbnail

HTTP 상태코드

클라이언트가 서버를 향해 리퀘스트를 보낼 때 서버에서 그 결과가 어떻게 되었는지 알려주는 것이 상태코드의 역할
-> 정상적으로 처리했는지, 리퀘스트 결과가 에러였는지

클래스 설명
1xx informational 리퀘스트를 받아들여 처리중
2xx Success 리퀘스트를 정상적으로 처리했음
3xx Redirection 리퀘스트를 완료하기 위해서는 추가 동작 필요
4xx Client Error 서버는 리퀘스트 이해 불가능
5xx Server Error 서버는 리퀘스트 처리 실패

2xx 성공(Success)

리퀘스트가 정상 처리되었음을 나타냄

200 OK

클라이언트가 보낸 리퀘스트를 서버가 정상 처리했음을 나타냄

204 No Content

리퀘스트를 받아서 처리하는데는 성공했지만 리스폰스에 엔티티 바디를 포함하지 않음
-> 클라이언트에서 서버에 정보를 보내는 것으로 족하고, 클라이언트에 대해서 새로 정보를 보낼 필요가 없는 경우에 사용됨

206 Parital Content

Range에 의해서 범위가 지정된 리퀘스트에 의해서 서버가 부분적 GET 리퀘스트를 받았음을 나타냄
-> 리스폰스에 Content-Range로 지정된 범위의 엔티티가 포함됨


3xx 리다이렉트(Redirection)

리퀘스트가 정상적으로 처리되기 위해 브라우저 측에서 특별한 처리를 수행해야 함을 나타냄

301 Moved Permanently

요청한 페이지가 영구적으로 이동되었음을 나타냄
-> 이 경우, 브라우저는 자동적으로 새로운 주소로 리다이렉트합니다. 이 상태 코드는 웹 페이지를 옮기거나, 기존 웹 페이지를 삭제할 때 사용

302 Found

요청한 페이지가 잠시 이동되었음을 나타냄
-> 이 경우, 브라우저는 일반적으로 새로운 주소로 리다이렉트하지만, 새로운 주소로 계속 요청을 합니다. 이 상태 코드는 일시적으로 웹 페이지를 옮길 때 사용

303 See Other

요청한 페이지를 다른 주소로 리다이렉트 하라는 것을 의미
-> 예를 들어, 사용자가 특정 웹 페이지를 요청했을 때, 서버는 이 요청을 받아들이지만, 현재 요청한 페이지를 보여주는 것이 아니라 새로운 주소로 리다이렉트 하라는 응답을 보낼 수 있습니다. 이때 서버는 HTTP 상태 코드로 303 See Other를 보내며, 이 상태 코드를 받은 브라우저는 GET 메소드를 사용하여 새로운 주소로 요청을 재시도

301,302,303 리스폰스 코드가 되돌아 오면, 대부분의 브라우저에서는 POST를 GET으로 바꾸어서 리퀘스트의 엔티티 바디를 삭제하고 리퀘스트를 자동적으로 재송신하도록 되어 있음

304 Not Modified

클라이언트가 조건부 리퀘스트를 했을 때, 리소스에 대한 엑세스는 허용하지만, 조건이 충족되지 않았음을 의미
-> 리스폰스 바디에 어느것도 포함되면 안되고, 3xx이지만 리다이렉트와는 관련이 없음

ex)

304는 요청한 페이지가 수정되지 않았음을 의미함
-> 사용자가 웹 브라우저를 통해 특정 웹 페이지를 요청했을 때, 서버는 그 요청에 대해 응답을 보내면서 해당 페이지의 마지막 수정 시간(Last-Modified) 헤더를 포함하여 보냅니다. 그리고 사용자가 그 페이지를 다시 요청 할때 클라이언트가 If-Modified-Since 헤더를 포함하여 서버에 요청을 하면 서버는 페이지의 수정시간을 다시 확인하여, 페이지가 수정되지 않았다면 HTTP 304 상태 코드를 응답으로 보내며 이때 페이지 내용은 전송되지 않음

웹 서버와 클라이언트 간의 네트워크 트래픽을 줄이고, 웹 페이지를 더 빠르게 로딩 할 수 있도록 하는 데 도움

307 Temporary Redirect

Temporary Redirect는 요청한 페이지가 잠시적으로 다른 주소로 이동되었음을 나타내는 상태 코드 -> 302 Found와 같은 의미

307 Temporary Redirect는 서버가 요청을 처리하지 않고, 다른 주소로 요청을 전달하라는 의미
-> 잠시적으로 웹 페이지를 옮길 때 사용됨


4xx 클라이언트 에러(Client Error)

클라이언트의 원인으로 에러가 발생했음을 의미

400 Bad Request

리퀘스트 구문이 잘못되었음을 나타냄
-> 리퀘스트 내용을 재검토하고 나서 재송신할 필요 있음
-> 브라우저는 이것을 200 OK와 같게 취급함

401 Unauthorized

송신된 리퀘스트에 HTTP 인증이 필요하다는 것을 나타냄
-> ex) 클라이언트가 서버에 요청을 할 때 필요한 인증 정보(예를 들면, 사용자 이름과 비밀번호)를 제공하지 않아 인증되지 않았을 경우 반환
-> 인증에 사용되는 기술로는 Basic Authentication, Digest Authentication, OAuth

403 Forbidden

리퀘스트된 리소스의 엑세스가 거부되었음을 나타냄
-> 서버 측에서 거부 이유를 엔티티 바디에 기재해서 유저 측에 표시
-> ex) 파일 시스템의 퍼미션이 부여되지 않은 경우, 엑세스 권한에 문제가 있는 경우(ex : 허가되지 않은 송신 IP 주소의 엑세스)등

404 Not Found

리퀘스트한 리소스가 서버상에 없다는 것을 나타냄


5xx 서버 에러(Server Error)

서버 원인으로 에러가 발생하고 있음을 나타냄

500 Internal Server Error

서버에서 리퀘스트를 처리하는 도중에 에러가 발생하였음을 나타냄

503 Service Unavaliable

서버가 일시적으로 과부하 상태거나, 점검중이기 때문에 현재 리퀘스트를 처리할 수 없음을 나타냄
-> 해소 되기 까지 시간이 걸리는 경우 Retry-After 헤더 필드에 따라 클라이언트에 전달하는 것이 바람직

상태 코드가 현재 상황과 불일치 할수도 있다는 점 유의
-> ex) 애플리케이션 에러가 발생한 경우 상태 코드로는 200OK가 되돌아오는 경우

profile
Journey for Backend Developer

0개의 댓글

관련 채용 정보