HTTP Message의 구조

·2022년 6월 21일
0
post-thumbnail

HTTP 개요

  • HTTP는 서버와 클라이언트가 통신하기 위한 프로토콜이다.
  • ASCII로 인코딩된 텍스트로 데이터를 교환한다.
  • 교환하는 데이터를 HTTP Message라고 한다
    • 목적에 따라 요청은 HTTP Request, 응답은 HTTP Response로 나눌 수 있다.
    • 구조에 따라 start line, HTTP HeaderHTTP Body로 나눌 수 있다.

Start line

  • {HTTP Method} {URL} {HTTP_Version}
  • {HTTP_Version} {status_code} {msg}

HTTP Method

  • GET, PUT, POST, HEAD등 행동을 정의한다.

URL

  • 요청을 수행할 목적지의 리소스를 의미한다.
  • ASCII로 인코딩된 텍스트 데이터이므로 ASCII가 아닌 유니코드 같은 경우 escape처리를 하도록 설계가 되어있다.
    • 한글을 url에 입력하는 경우 %E8%20%7...등 이스케이프 처리가 된다.
  • 스킴
    • 사용할 프로토콜을 의미
    • http나 https를 사용한다
  • Host
    • 리소스를 가지고 있는 컴퓨터의 위치, 도메인 이름
  • Path
    • host에서 제공하는 리소스의 경로
  • Query String
    • ?id=8&page=7과 같은 형태로 주어진다
    • 동적 리소스를 식별하는 값으로 자주 사용
  • fragment
    • #URL 등 가르키고 있는 HTML요소를 보여주도록 함
    • 현재 url에 #URL을 끝에 추가하면 현재 문단으로 스크롤링 된 상태가 됨

HTTP version

  • 연결을 원하는 HTTP version을 표현

status code

  • Response에서 Request에 대한 응답으로 성공 혹은 상태 변화 상태, 실패 상태 등을 전달

HTTP Header

  • Client나 서버에 대한 신상 정보라고 할 수 있다. (다른 나라를 여행하기 위한 여권, 비자라고 이해하는 것이 편하다.)
  • 접속 프로그램 정보, 허용하는 컨텐츠 타입, 사용하는 언어, 허용하는 압축 알고리즘, 세션정보, HTTP Body의 컨텐츠 타입, length등을 저장한다.
  • 보안, 인증, 주고받는 데이터 타입을 식별하는데 쓰인다.

HTTP Body

  • 실제로 주고받는 데이터 값
profile
Ben

0개의 댓글