[그림으로 배우는 HTTP & Network Basic] 3장 HTTP 정보는 HTTP 메시지에 있다
[그림으로 배우는 HTTP & Network Basic] 3장 HTTP 정보는 HTTP 메시지에 있다

[그림으로 배우는 HTTP & Network Basic] 3장 HTTP 정보는 HTTP 메시지에 있다

Tags
우에노 센
Network
HTTP
Published
June 3, 2023
Author
lkdcode

HTTP 정보는 HTTP 메시지에 있다

HTTP 메시지

  • 메시지 헤더
    • 서버와 클라이언트가 꼭 처리해야 하는 리퀘스트와 리스폰스 내용과 속성 등
  • 개행 문자
  • 메시지 바디
    • 꼭 전송되는 데이터 그 자체

리퀘스트 메시지와 리스폰스 메시지의 구조

  • 리퀘스트
    • 메시지 헤더
      • 리퀘스트 라인
      • 리퀘스트 헤더 필드
      • 일반 헤더 필드
      • 엔티티 헤더 필드
      • 그 외
  • 리스폰스
    • 메시지 헤더
      • 상태 라인
      • 리스폰스 헤더 필드
      • 일반 헤더 필드
      • 엔티티 헤더 필드
      • 그 외
  • 리퀘스트 라인 : 리퀘스트에 사용하는 메소드와 리퀘스트 URI와 사용하는 HTTP 버전이 포함
  • 상태 라인 : 리스폰스 결과를 나타내는 상태 코드와 설명, 사용하는 HTTP 버전이 포함
  • 헤더 필드 : 리퀘스트와 리스폰스의 여러 조건과 속성 등을 나타내는 각종 헤더 필드가 포함

인코딩으로 전송 효율을 높이다

인코딩을 하면 다량의 엑세스를 효율 좋게 처리 할 수 있다. 컴퓨터에서 처리하기 때문에 CPU 등의 리소스는 보다 많이 소비.
  • 메시지 : 통신을 통해서 전송
  • 엔티티 : 리퀘스트랑 리스폰스의 payload 로 전송되는 정보로 엔티티 헤더 필드와 엔티티 바디로 구성

압축해서 보내는 콘텐츠 코딩

HTTP에는 용량을 줄이기 위해 콘텐츠 코딩이라고 불리는 기능이 구현 됨. 엔티티에 적용하는 인코딩을 가리킨다. 콘텐츠 코딩된 엔티티는 클라이언트 측에서 디코딩 한다.

분해해서 보내는 청크 전송 코딩

사이즈가 큰 데이터를 전송하는 경우에 데이터를 분할해서 조금씩 표시할 수 있다. (엔티티 바디를 분할 한다)

여러 데이터를 보내는 멀티 파트

이미지 등의 바이너리 데이터를 아스키 문자열에 인코딩하는 방법과 데이터 종류를 나타내는 방법 등을 규정. HTTP 도 멀티파트에 대응하고 있다 하나의 메시지 바디 내부에 엔티티를 여러 개 포함 시켜 보낼 수 있다 주로 이미지나 텍스트 파일 등을 업로드할 때 사용
  • multipart/form-data : web 폼으로부터 파일 업로드에 사용
  • multipart/byteranges : 상태 코드 206 리스폰스 메시지가 복수 범위의 내용을 포함할 때 사용

일부분만 받는 레인지 리퀘스트

리줌을 통해 이전에 다운로드 한 곳에서부터 다운로드를 재개할 수 있다. 리스폰스 상태 코드는 206 복수 범위의 레인지 리퀘스트에 대한 리스폰스는 multipart/byteranges 로 되돌아온다. 서버가 레인지 리퀘스트를 지원하지 않는 경우에는 상태 코드는 200 ok

최적의 콘텐츠를 돌려주는 콘텐츠 네고시에이션

브라우저가 같은 URI에 액세스할 때에 각각 영어판, 한국판 웹 페이지를 표시한다. 클라이언트에게 더욱 적합한 리소스를 제공하기 위해 클라이언트와 서버가 제공하는 리소스이 내용에 대해서 교섭하는 것. 제공하는 리소스를 언어와 문자 세트, 인코딩 방식 등을 기준으로 판단한다.
  • 서버 구동형 네고시네이션 : 서버 측에서 콘텐츠 네고시에이션을 하는 방식
    • 브라우저가 보내는 정보를 근거로 하기 때문에 유저에게 정말로 적절한 것이 선택되었다고 할 수 없음
  • 에이전트 구동형 네고시네이션 : 클라이언트 측에서 콘텐츠 네고시에이션을 하는 방식
    • 자바스크립트 등을 사용해서 웹 페이지에서 자동적으로 이것을 정하는 것도 있다.
    • OS 의 종류나 브라우저의 종류 등에 의해서 PC 용과 스마트 폰용의 웹 페이지를 자동으로 전환하는 것
  • 트랜스페어런트 네고시에이션 : 서버 구동형과 에이전트 구동형을 혼합한 것