스터디/CS 스터디 (24.06-24.11)

네트워크 : HTTP 상태 코드

minseokiim 2024. 8. 12. 19:42

* HTTP 상태 코드

: 5개의 클래스로 분류

클라이언트의 요청에 대한 서버의 응답 상태를 나타내는 3자리 숫자

상태코드 첫 숫자(5XX의 5)가 응답의 클래스를 정의함

1XX 정보성 응답 서버가 클라이언트의 요청을 받았으며, 요청 처리를 계속 진행 중
2XX 성공 요청 받기 성공
3XX 리다이렉션 요청 완료 위해 클라이언트의 추가 작업이 필요
4XX 클라이언트 오류 요청 문법 오류등으로 인한 요청 처리 불가
5XX 서버 오류 서버가 유효한 요청에 대해 실패

 

* 상태 코드 종류

1) 1XX (정보성 응답)

- 100 : Continue

클라이언트가 서버에게 요청을 보내는 중간에, 요청의 일부만을 먼저 보내고, 나머지 요청을 계속 보내도 괜찮은지 서버에게 물어볼 때 100을 보내주면 클라이언트가 나머지 부분을 계속해서 보낼 수 있음

 

- 101 : Switching Protocols

서버가 클라이언트의 프로토콜 변경 요청을 이해하고 그 요청에 응할 준비가 되었음을 나타냄

 

- 102 : Processing

서버가 클라이언트의 요청을 수신하고 있으며, 아직 요청을 계속 처리 중이라는 신호

 

 

2) 2XX (성공)

- 200 : OK

클라이언트의 요청이 성공적으로 처리되었으며, 요청된 리소스가 정상적으로 반환되었음

웹 페이지를 정상적으로 로드할 때 이 코드가 반환

 

- 201 : Created

클라이언트의 요청이 성공적으로 처리되었으며, 그 결과로 새로운 리소스가 생성되었음

POST 요청에 대한 응답으로 사용

 

- 202 : Accepted

클라이언트의 요청이 서버에 의해 받아들여졌지만, 아직 처리되지 않았음

요청이 큐에 들어갔으며, 처리 중이거나 처리될 예정임을 의미 -> 비동기 처리에 사용

 

- 204 : No Content

클라이언트의 요청이 성공적으로 처리되었지만, 반환할 콘텐츠가 없음

DELETE 후에 이 코드가 반환될 수 있음

 

 

3) 3XX (리다이렉션)

- 301 : Moved Permanently

클라이언트가 요청한 리소스가 영구적으로 다른 URL로 이동되었음을 나타냄.

 

1) 서버는 이 상태 코드를 응답으로 보내고, 새로운 URL을 Location 헤더에 포함시킴

2) 응답을 받은 클라이언트는 자동으로 새로운 URL로 요청을 다시 보냄

3) 검색 엔진은 이 코드를 받으면 원래 URL 대신 새로운 URL을 반영(원래 URL을 인덱스에서 제거)

 

 

- 302 : Found (과거 : Temporary Redirect)

클라이언트가 요청한 리소스가 일시적으로 다른 URL에 있다고 알릴 때 사용

 

1) 서버는 이 상태 코드를 응답으로 보내고, 새로운 URL을 Location 헤더에 포함시킴

2) 응답을 받은 클라이언트는 자동으로 새로운 URL로 요청을 다시 보냄

단, 클라이언트는 원래의 URL을 계속해서 사용해야 하며, 검색 엔진은 이 URL을 영구적으로 업데이트하지 않음.

-> 새로운 URL은 일시적인 리다이렉션으로 처리

 

+ 이 둘을 구별하는 것은 사람이 아닌 검색 엔진! -> SEO에 영향

301의 경우에는 기존 URL에 대한 모든 SEO 값(페이지 권한, 링크 주스 등)을 새로운 URL로 영구적으로 이전

-> 원래 URL의 검색 랭킹과 권위가 새로운 URL로 전달

 

302의 경우에는 원래 URL의 SEO 값과 권위를 유지

 

 

4) 4XX (클라이언트 오류)

- 400 : Bad Request

클라이언트의 요청이 잘못되었거나 서버가 이해할 수 없는 형식일 때 사용

ex. 잘못된 구문, 잘못된 메시지 프레이밍, 잘못된 요청 매개변수

 

- 401 : Unauthorized

클라이언트가 요청한 리소스에 접근하기 위해 인증이 필요하지만, 인증 정보가 제공되지 않았거나 제공된 인증 정보가 유효하지 않을 때 사용

-> '인증이 필요함'을 의미

 

- 403 : Forbidden

클라이언트가 인증을 했으나 요청된 리소스에 접근할 권한이 없을 때 사용

 

- 404 : Not Found

클라이언트가 요청한 URL이 서버에서 존재하지 않거나, 찾을 수 없을 때 사용

 

 

5) 5XX (서버 오류)

- 500 : Internal Serval Error

서버에서 내부적으로 문제가 발생하여 클라이언트의 요청을 처리할 수 없을 때 사용

구체적인 오류 원인을 클라이언트에게 제공할 수 없거나, 서버가 오류를 식별하지 못했을 때 500 반환

 

- 503 : Service Unavailable

서버가 일시적으로 과부하 상태이거나 유지보수 중이라서 요청을 처리할 수 없을 때 사용