WEB Status - HTTP 상태 코드
간단한 서버 구축, 크롤링 작업 등을 통해 200, 404, 405 등 자주 마주치는 상태 코드들에 대해서는 알고 있었지만 1xx, 3xx 등의 상태 코드에 대해서는 아는 바가 없어 자주 보이는 대표적인 상태코드에 대해 한 번 정리하기로 하였다.
1XX - 조건부 응답
임시 응답으로 선택적 헤더만을 포함한다.
100 Continue
지금까지의 상태가 괜찮으며 클라이언트가 계속해서 요청을 하거나 이미 요청을 완료한 경우에는 무시 가능
101 Switching Protocol
클라이언트가 보낸 Upgrade 요청 헤더에 대한 응답
서버에서 프로토콜을 변경할 것을 전달
102 Processing
서버가 요청을 수신하였으며 이를 처리하고 있지만, 아직 제대로 된 응답을 알려줄 수 없음
2XX - 성공 응답
클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음
200 OK
서버가 요청을 제대로 처리했다는 뜻. 주로 서버가 요청한 페이지를 제공했다는 의미
201 Created
성공적으로 요청되었으며 서버가 새 리소스를 작성
일반적으로 POST 요청 또는 일부 PUT 요청 이후에 따라옴
202 Accepted
서버가 요청을 접수했지만 아직 처리하지 않음
다른 프로세스에서 처리 또는 서버가 요청을 다루고 있거나 배치 프로세스를 하고 있는 경우를 위해 만들어짐
203 Non-Authoritative Information(신뢰할 수 없는 정보)
서버가 요청을 성공적으로 처리했지만 다른 소스에서 수신된 정보를 제공하고 있음
206 Partial Content
클라이언트에서 복수의 스트림을 분할 다운로드 하고자 범위 헤더를 전송
즉, 서버가 GET 요청의 일부만 성공적으로 처리
3XX - 리다이렉션 메시지
300 Multiple Choice
요청에 대해 하나 이상의 응답 가능
요청자가 선택할 수 있는 작업 목록을 제공
그러나 표준화 된 방법은 존재하지 않음
301 Moved Permanetly
요청한 리소스의 URI가 영구적으로 변경되었음
302 Found
요청한 리소스의 URI가 일시적으로 변경되었음
클라이언트는 향후의 요청도 반드시 동일한 URI로 해야함
303 See Other
클라이언트가 요청한 리소스를 다른 URI에서 GET 요청을 통해 얻어야할 때, 서버가 클라이언트로 직접 보내는 응답
4XX - 요청 오류 응답
클라이언트에 오류가 있음을 나타냄
400 Bad Request
잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음
401 Unathorized
클라이언트는 요청한 응답을 받기 위해서는 반드시 스스로를 인증해야 함
상태 코드 이름은 Unauthorized(미인증)이지만, 사실 Unauthenticated(비인증)에 더 가까움
403 Forbidden
클라이언트가 컨텐츠에 접근할 권리를 가지고 있지 않음
401과의 차이점은 서버가 클라이언트가 누구인지 알고 있음
(401은 인증 실패, 403은 인가 실패)
404 Not Found
서버가 요청한 페이지(Resource)를 찾을 수 없음
웹에서 반복적으로 발생하기 때문에 가장 유명한 상태 코드 중 하나
405 Method Not Allowed
요청한 메소드를 서버에서 인식했지만, 제거되었고 사용할 수 없음
예를 들어, POST 방식으로 요청을 받는 서버에 GET 요청을 보내는 경우, 또는 읽기 전용 리소스에 PUT 요청을 보내는 경우 이 상태 코드 제공
408 Request Timeout
서버의 요청 대기 시간을 초과
429 Too many Requests
사용자가 지정된 시간에 너무 많은 요청을 보냄
5XX - 서버 오류 응답
본서버가 유효한 요청을 명백하게 수행하지 못했음
500 Internal Server Error
서버에 오류가 발생하여 요청 수행 불가
501 Not Implemented
서버에 요청을 수행할 수 있는 기능이 없음
예를 들어 서버가 요청 메소드를 인식하지 못할 때 이 상태 코드 표시
503 Service Unavailable
일시적인 상태로, 서버가 오버로드 되었거나 잠시 다운되어 현재 서버를 사용할 수 없을 때 표시
505 HTTP Version Not Supported
서버가 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않음
목록화 한 상태 코드들 이외에도 다양한 코드들이 있으나 아마 마주하기 어려운 코드들이 아닐까 싶다..
개인적으로 가장 많이 마주치는 상태 코드는 404와 405가 아니었나 싶다..
'etc' 카테고리의 다른 글
별도 프로그램 설치 없이 동영상 파일을 GIF로 만들기(feat. Convertio) (0) | 2019.11.30 |
---|---|
Windows 파일 이름 한 번에 일괄적으로 소문자로 바꾸기 (2) | 2019.11.20 |
[mysql] DB에서 원하는 기간 별로 데이터 분류하기 (0) | 2018.08.07 |
REST API란? #Web API #HTTP API #Restful API (0) | 2018.07.30 |
[pymysql] InternalError: 1366, "Incorrect String Value" 해결하기 (0) | 2018.07.23 |