티스토리 뷰

이번 포스팅에서는 HTTP 상태 간 발생되는 코드값에 대해서 설명하려고 합니다. HTTP프로토콜을 사용 하여 클라이언트와 서버간의 통신을 하는 것이 현재 사용 되는 가장 보편적인 클라이언트와 서버간 통신방법입니다.


클라이언트(웹브라우저,단말기)에서 미리 정의된 규격을 통해 서버에 요청(Request)을 하면 서버는 이를 받아 내부적으로 처리 한 후에 그에 대한 결과를 클라이언트에게 응답(Response)을 내려주는데, 이때 내려주는 코드를 Response Code라고 하여 공통적으로 약속된 방식의 code를 사용 함으로 코드만 보고도 성공/실패 및 그 사유까지도 알수 있도록 되어 있습니다.


각 코드는 100단위로 응답 형식에 따라 응답코드가 묶여 있으며, 각 단위를 이루는 숫자의 첫번째 코드를 Response Class라고 하며  Response Class는 다음과 같은 의미로 되어 있습니다.


 Response Class

 의미

설명 

 1

 조건부 응답

 요청을 받았으며 작업을 진행중이다.

 2

 성공

 요청을 정상적으로 처리 하였다.

 3

 리다이렉션 완료

 요청을 마치기 위해 추가 동작을 해야 한다.

 4

 요청 오류

 클라이언트에 오류가 있다.

 5

 서버 오류

 서버에서 처리하지 못했다.



개발 중에 가장 많이 보게 되는 것이 2xx번대와 4xx,5xx 오류 입니다. 5xx으로 내려오는 경우 요청에는 문제가 없으며 서버에서 처리되는 과정에서 에러가 발생 된것으로 판단하고 진행 하시면 되고 4xx번대의 경우에는 요청을 하는 클라이언트단에 문제가 있는것으로 판단하고 진행하시면 됩니다. 



200 번대 응답(Response) : 성공(Success)

 

200

OK(성공)

* 요청 정상 처리.

204

No Content(콘텐츠 없음)

* 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않는다.

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

(잘못된 요청)

서버가 요청의 구문을 인식하지 못함

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 버전에서는 지원되지 않는 요청임을 알려줌.



* 참고 자료 : https://en.wikipedia.org/wiki/List_of_HTTP_status_codes,http://ooz.co.kr/260


댓글