✅ HTTP 메시지 구조
![](https://velog.velcdn.com/images/jungwy98/post/0961153d-e946-410c-8ad7-a08a6ad8d290/image.png)
- start-line 시작 라인
- HTTP header
- empty line 공백 라인
- message body
✅ HTTP 요청(Request) 메시지
![](https://velog.velcdn.com/images/jungwy98/post/ba924104-8d50-4e85-8442-ed8a485a0cb6/image.png)
start-line
→ HTTP메서드 SP(공백) request-target SP HTTP-version CRLF(엔터)
- HTTP 메서드: GET,POST, PUT, DELETE...
- request-target: /search?q=hello&hl=ko
- HTTP-version
→ field-name: OWS(띄어쓰기 허용) field-value OWS
✅ HTTP 응답(Response) 메시지
![](https://velog.velcdn.com/images/jungwy98/post/8c8dffa0-83fa-4bc4-821c-68da52b92d9d/image.png)
start-line
→ HTTP-version SP status-code SP reason-phase CRLF
- HTTP-version
- status-code: 200 성공, 400 클라이언트 요청 오류, 500 서버 내부 오류
- reason-phase: 사람이 이해할 수 있는 짧은 상태 코드 설명 글
→ field-name: OWS(띄어쓰기 허용) field-value OWS
- HTTP 전송에 필요한 모든 부가정보
- 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 정보, 서버 애플리케이션 정보, 캐시 관리 정보..
message body
- 실제 전송할 데이터
- HTML 문서, 이미지, 영상, JSON 등등 byte로 표현할 수 있는 모든 데이터 전송 가능
출처: 모든 개발자를 위한 HTTP 웹 기본 지식