CS/Network

HTTP [HTTP Response]

Hamp 2024. 9. 18. 15:49
반응형

 

정의

응답 메세지는 서버가 클라이언트로 보내는 메세지이다.


구성요소


a. Status Line

HTTP version

Response와 같이 HTTP Version을 나타낸다.

Status Code

응답 상태를 나타내는 코드(숫자)
  • 1xx (요청에 대한 정보): Request received, continuing process.
    • 요청을 받으면, 기존 작업 처리를 계속 진행한다.
  • 2xx (성공): The action was successfully received, understood, and accepted.
    • 작업이 성공적으로 수용되고, 해석되었으며, 수행되었다.
    •  200(성공), 201(새 리소스 작성), 202(요청이 접수, 아직 처리 X)
  • 3xx (리다이렉션): Further action needs to be taken in order to complete the request.
    • 요청 작업을 완료하기 위해 추가적인 동작을 수행해야한다.
    •  300(여러개의 응답으로 선택해야 한다), 301(영구 이동), 302(임시 이동)
  • 4xx (클라이언트 오류): The request contains bad syntax or cannot be fulfilled.
    • 클라이언트 요청에 부적절한 구문이 있거나 해당 내용이 수행될 수 없다.
    • 401(권한 없음), 404(금지됨), 404(찾을 수 없음, 서버에 없음)
  • 5xx (서버 오류): The server failed to fulfil an apparently valid request.
    •  서버가 유효한 요청에 대한 작업을 수행하지 못했다.
    • 500(내부 서버 오류), 501(메소드 인식 불가), 503(서비스 사용 불가)

Status Message

응답 코드에 대한 간단한 메시지다.

b. headers

다양한 응답 메타데이터 정보가 들어있으며, 크게 Response, General, Entity Header 나눌 있다.

 

General, Entity 헤더는 request쪽과 역할이 동일하기 때문에 여기서는 Response Header만 다뤄보자.

 

Response Header에는 상태 텍스트와 코드에서 미처 나타내지 못한 서버의 메타데이타 정보를 담고 있다.

 

Response Headder

  • Access-Control-Allow-Origin : 응답이 origin으로 부터의 요청 코드와 공유될 수 있는지를 나타낸다.
    만약 프론트엔드와 백엔드 주소가 다르면 CORS 에러 발생
  • Set-cookie : 서버에서 사용자 브라우저에 쿠키를 전송하기 위해 사용한다.
  • Last-Modified : 서버가 알고있는 가장 마지막 수정된 날짜와 시각. 저장된 리소스가 이전과 같은지 유효성 검사자로 사용
  • Location : 리다이렉션될 URL 주소를 명시한다. 해당 내용은 Statue code가 3.XX(redirect), 201(created)일 때 사용한다.
  • Allow : 요청한 리소스를 지원하는 메소드 집합을 나열. 상태에서 어떤 메소드를 사용할 있는지를 있다.

c. body

서버가 클라이언트에게 응답할 데이터가 존재할 경우 해당 데이터를 담고 있다.

 

모든 응답에 본문이 들어가진 않는다. 길이를 아는 단일-리소스 본문, 길이를 모르는 단일-리소스 본문,그리고

다중 리소스 본문으로 나눌 수 있다.

 

길이를 모르는 단일-리소스 본문에는 Transfer-Encoding chunked 설정되어 있으며, 파일은 chunk 나뉘어 인코딩 되어 있다.

 


Response 형태

HTTP/1.1 200 OK														// 시작줄
Connection: keep-alive												 // 헤더
Content-Encoding: gzip												 
Content-Length: 35653
Content-Type: text/html;

<!DOCTYPE html><html lang="ko" data-reactroot=""><head><title...

참고

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org

 

 

[네트워크] HTTP Message와 Status Code

HTTP Message(start-line, header, body)와 Statue Code

velog.io

 

반응형