[HTTP] HTTP 메시지 구조

괭이밥·2022년 12월 5일
0

HTTP

목록 보기
3/6
post-thumbnail

🔎 목차

  1. HTTP 메시지 구조 스펙
  2. 시작라인
  3. 헤더
  4. 메시지 바디


📌 HTTP 메시지

HTTP 메시지는 요청 메시지, 응답 메시지로 나눌 수 있다.

HTTP 메시지 구조 스펙

  • start-line(시작 라인)
  • header(헤더)
  • CRLF(공백 라인)
  • message-body


👉 start-line(시작라인)

start-line가 나타내는 것

  • 클라이언트: 실행되어야 할 요청(request-line)
  • 서버: 요청 수행에 대한 성공 또는 실패(status-line)

요청 메시지

method SP request-target SP HTTP-version CRLF
  • SP: 공백, CRLF: 엔터
  • 요청 메시지에서 시작 라인은 request-line
  • method - HTTP 메서드
    • 서버가 수행할 동작 지정
  • request-target - 요청 대상
    • 요청 대상 지정
    • 요청 대상 포멧 다양함
    • 보통 절대경로인 /로 시작
    • 다른 유형의 경로 지정 가능

추가) 요청 대상 포멧

  • origin 형식
    • 끝에 ?와 쿼리 문자열이 붙는 절대 경로
    • 같이 쓰는 HTTP 메서드: GET, POST, HEAD, OPTIONS
  • absolute 형식
    • 완전한 URL 형식
    • 같이 쓰는 HTTP 메서드: GET
  • authority 형식
    • 도메인 이름[:포트]로 이루어진 URL 형식, 포트는 옵션
    • 같이 쓰는 HTTP 메서드: CONNECT
  • asterisk 형식
    • OPTIONS와 함께 * 하나로 서버 전체 나타냄
    • 같이 쓰는 HTTP 메서드: OPTIONS

응답 메시지

HTTP-version SP status-code reason-pharse CRLF
  • 응답메시지에서 시작 라인은 status-line
  • statue-code - HTTP 상태 코드
    • 클라이언트가 보낸 요청 성공인지 실패인지 나타냄
    • ex. 200, 404
  • reason-pharse
    • 상태 코드의 의미 짧게 나타냄
    • ex. 200 OK


👉 Header(헤더)

field-name":" OWS field-vlaue OWS
  • OWS: 띄어쓰기 허용
    • field-name과 콜론 사이 띄어쓰기는 허용하지 않음
  • 헤더에 HTTP 전송에 필요한 부가 정보 담음
    • 메시지 바디 내용, 크기, 등등
    • 모든 메타 데이터 들어있음

추후 정리필요



👉 message-body(메시지 바디)

  • 실제 전송할 데이터
  • byte로 표현할 수 있는 모든 데이터 전송 가능
    • HTML 문서, 이미지, 영상, JSON 등등


출처
인프런 '모든 개발자를 위한 HTTP 웹 기본 지식' 강의
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

profile
사람들이 움직이는게

0개의 댓글