일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- toString
- 출처 : https://webdir.tistory.com/506
- object
- http://jeonghwan-kim.github.io/dev/2019/06/25/react-ts.html
- 게시판
- 출처 : https://joshua1988.github.io/web-development/javascript/promise-for-beginners/
- https://velog.io/@velopert/create-typescript-react-component
- Today
- Total
Back Ground
HTTP 서버 응답 코드 정의 본문
오늘은 HTTP 통신 시, 서버에서 보내주는 응답 코드에 대해 간단히 정리해 보려고 합니다.
(개인적으로도 가끔 쉽게 찾아보려고 정리하는 겸 해서 게시물을 작성하였습니다.^^)
클라이언트(웹 브라우저)에서 서버에 어떠한 요청(리퀘스트, Request)를 하면 서버는 응답(리스폰스, Response)를 보내줍니다.
적절한 처리가 이루어져서 성공 응답과 함께 결과 값을 보내주기도 하고, 정상적인 처리가 되지 않은 경우에는 실패 응답과 함께 에러 정보를 보내주기도 합니다.
웹 개발자라면 기본적으로 서버가 정상 응답한 경우, 200 코드를 보내주는 것은 다들 알고 계실겁니다.
200을 포함하여 200번대 응답은 서버에서 정상적으로 처리하여 응답한 경우, 보내주는 값들입니다.
그리고 각 코드는 100번대 단위로 응답 코드가 구분되어 있습니다. (즉, 300번대끼리, 400번대끼리 유사한 형태의 응답 코드라는 의미입니다.)
이처럼 3자리 숫자의 첫번째 값(코드)만 보고도 어떤 종류의 응답인지 알 수 있는데요. 이 첫번째 값을 Response Class라고 합니다.
그럼 각 Response Code 에 따라서 어떤 응답을 나타내는지 한 번 볼까요?
Response Class Code | Response Class 의미 | 설명 |
1 | Informational (정보) | 리퀘스트를 받고, 처리 중에 있음. |
2 | Success (성공) | 리퀘스트를 정상적으로 처리함. |
3 | Redirection (리디렉션) | 리퀘스트 완료를 위해 추가 동작이 필요함. |
4 | Client Error (클라이언트 오류) | 클라이언트 요청을 처리할 수 없어 오류 발생 |
5 | Server Error (서버 오류) | 서버에서 처리를 하지 못하여 오류 발생 |
4번과 5번은 에러이기는 한데, 간단히 차이점을 설명하자면 4xx 에러는 클라이언트의 잘못된 요청으로 서버에서 처리하지 못한 것이고, 5xx 에러는 클라이언트의 요청은 문제가 없으나, 서버에서 처리중에 서버 문제로 인해 오류가 발생한 것이라고 생각하시면 됩니다.
아래는 자주 접하는 코드를 위주로 작성하였고, 더 상세한 정보는 아래 참고 자료의 위키피디아 링크를 참조해주세요.~
* 200 번대 응답(Response) : 성공(Success)
200 | OK | * 요청 정상 처리. |
204 | No Content | * 요청 정상 처리하였지만, 돌려줄 리소스 없음. * 응답에 어떠한 엔티티 바디(Entity Body)도 포함하지 않음. * 서버에서 처리 후, 클라이언트에 정보를 보낼 필요가 없는 경우 사용. |
206 | Partial Content | * Range가 지정된 요청인 경우, 지정된 범위만큼의 요청을 받았다는 것을 알려줌. |
* 300 번대 응답(Response) : 리디렉션(Redirection)
301 | Moved Permanently | * 요청된 리소스에는 새로운 URI가 지정되어 있기 때문에, 이후로는 새 URI를 사용해야 한다는 것을 나타냄. (영구적인 URI 변경) |
302 | Found | * 요청된 리소스에는 새로운 URI가 지정되어 있기 때문에, 이후로는 새 URI를 사용해야 한 다는 것을 나타냄. 301과 유사하지만, 302는 일시적인 URI 이동) |
303 | See Other | * 이 응답은 요청에 대한 리소스는 다른 URI에 있기 때문에 GET 메서드를 사용해서 얻어야 한다는 것을 나타냄. 302 코드와 같지만, 303은 리디렉션 위치를 GET 메서드를 통해 얻어야 한다고 명확하게 되어 있음. |
304 | Not Modified | * 요청한 리소스가 마지막 요청 이후 변경된 적이 없기 때문에 기존 클라이언트의 로컬 캐시 리소스를 사용하도록 알려줌. 300번대로 분류되어 있지만, 리디렉션과는 관계없는 처리를 함. |
307 | Temporary Redirect | * 임시로 페이지를 리다이렉트 함. |
* 400 번대 응답(Response) : 클라이언트 에러 (Client Error)
400 | Bad Request | * 클라이언트의 요청 구문이 잘못됨. * 브라우저는 이 응답을 200 OK 응답과 동일한 형태로 취급함. |
401 | Unauthorized | * 요청 처리를 위해 HTTP 인증(BASIC 인증, DIGEST 인증) 정보가 필요함을 알려줌. 접근 허용을 차단함. 최초 요청에는 인증 다이얼로그 표시하고, 두번째는 인증 실패 응답을 보냄. |
403 | Forbidden | * 접근 금지 응답. Directory Listing 요청(서버 파일 디렉토리 목록 표시) 및 관리자 페이지 접근 등을 차단하는 경우의 응답. (파일 시스템 퍼미션 거부, 허가 되지 않은 IP 주소를 통한 액세스의 거부 등) * 서버는 엔티티 바디에 접근 거부에 대한 이유를 명시하여 보낼 수 있음. |
404 | Not Found | * 클라이언트가 요청한 리소스가 서버에 없음 |
405 | Mothod Not Allowed | * 허용되지 않는 HTTP 메서드를 사용함. |
* 500 번대 응답(Response) : 서버 에러 (Server Error)
500 | Internal Server Error | * 서버에서 클라이언트 요청을 처리 중에 에러가 발생함. |
503 | Service Unavailable | * 서버가 일시적으로 요청을 처리할 수 없음. * 서버가 과부하 상태이거나 점검중이므로 요청을 처리할 수 없음을 알려줌. |
504 | Gateway Timeout | * 서버를 통하는 게이트웨이에 문제가 발생하여 시간이 초과됨. |
505 | HTTP Version Not Supported | * 해당 HTTP 버전에서는 지원되지 않는 요청임을 알려줌. |
출처: http://ooz.co.kr/260 [이러쿵저러쿵]
[ 에러코드에대한 설명 ]
ErrorDocument 100 "100 Continue"
ErrorDocument 101 "101 Switching Protocols"
ErrorDocument 200 "200 OK"
ErrorDocument 201 "201 Created"
ErrorDocument 202 "202 Accepted"
ErrorDocument 203 "203 Non-Authoritative Information"
ErrorDocument 204 "204 No Content"
ErrorDocument 205 "205 Reset Content"
ErrorDocument 206 "206 Partial Content"
ErrorDocument 300 "300 Multiple Choices"
ErrorDocument 301 "301 Moved Permanently"
ErrorDocument 302 "302 Found"
ErrorDocument 303 "303 See Other"
ErrorDocument 304 "304 Not Modified"
ErrorDocument 305 "305 Use Proxy"
ErrorDocument 306 "306 Unused"
ErrorDocument 307 "307 Temporary Redirect"
ErrorDocument 400 "400 Bad Request"
ErrorDocument 401 "401 Unauthorized"
ErrorDocument 402 "402 Payment Required"
ErrorDocument 403 "403 Forbidden"
ErrorDocument 404 "404 Not Found"
ErrorDocument 405 "405 Method Not Allowed"
ErrorDocument 406 "406 Not Acceptable"
ErrorDocument 407 "407 Proxy Authentication Required"
ErrorDocument 408 "408 Request Timeout"
ErrorDocument 409 "409 Conflict"
ErrorDocument 410 "410 Gone" - 당신은 인증된 사용자가 아닙니다.
ErrorDocument 411 "411 Length Required"
ErrorDocument 412 "412 Precondition Failed"
ErrorDocument 413 "413 Request Entity Too Large"
ErrorDocument 414 "414 Request-URI Too Long"
ErrorDocument 415 "415 Unsupported Media Type"
ErrorDocument 416 "416 Requested Range Not Satisfiable"
ErrorDocument 417 "417 Expectation Failed"
ErrorDocument 500 "500 Internal Server Error"
ErrorDocument 501 "501 Not Implemented"
ErrorDocument 502 "502 Bad Gateway"
ErrorDocument 503 "503 Service Unavailable" - 트레픽 초과
ErrorDocument 504 "504 Gateway Timeout"
ErrorDocument 505 "505 HTTP Version Not Supported
-- 출처: 구글에서 검색 --