![](https://velog.velcdn.com/images/rg970604/post/0aa721f7-7549-4f37-bb05-471cc460607b/image.png)
![](https://velog.velcdn.com/images/rg970604/post/c3bdee30-5310-435c-a1e5-1f14a42d2f33/image.png)
- http 메세지의 구조는 오른쪽과 같다. 시작라인, 헤더, 공백라인, 메세지 마디가 있다. 공백은 무조건 있어야 한다.
- 요청메세지도 전송할 내용이 있을 경우 body를 가질 수 있으나 없으면 생략해도 된다.
- 응답메세지도 위 구조에 따라 응답을 보낸다.
![](https://velog.velcdn.com/images/rg970604/post/82585126-a2b1-421a-83c4-0a2c162971b9/image.png)
![](https://velog.velcdn.com/images/rg970604/post/0985bfed-ad68-4199-92be-94ca523ae2a3/image.png)
- 시작 라인은 status-line request-line이 있는데 요청 메세지는 request line이다.
- http 메소드와 요청 대상, Http 버전이 들어간다.
- http 메소드인 get post를 통해 서버가 수행해야 할 동작을 지정한다.
![](https://velog.velcdn.com/images/rg970604/post/bf02fca4-8a3a-4cb2-a596-fa47000b4683/image.png)
- 요청 대상을 지정하는 방법은 절대경로에 쿼리를 합쳐 보낸다
- 요청 메세지의 마지막에는 http 버전을 보낸다.
![](https://velog.velcdn.com/images/rg970604/post/20088185-96a5-428d-a6ae-fea6605f2e61/image.png)
- 응답 메세지는 status line이다.
- status line은 http 버전과 http 상태 코드(200,400,500...) 이유 문구(상태 코드 설명)로 구성된다.
![](https://velog.velcdn.com/images/rg970604/post/01e89d7a-546f-49a9-997c-9425dcf080f3/image.png)
- 시작 라인은 위와 같다
- 헤더 필드는 필드네임:OWS(띄어쓰기 허용한다는 뜻) 필드밸류 OWS 구조로 쓰여진다.
- 헤더의 용도는 http 전송에 필요한 모든 부가정보를 보내느 것이다(바디내용,바디크기,압축,인증 등...).
![](https://velog.velcdn.com/images/rg970604/post/00760732-d9af-4b58-bf13-6322a3a72055/image.png)
- 메세지 바디는 실제 전송할 데이터이다. 바이트로 표현할 수 있는 모든 데이터를 전송 가능하다
![](https://velog.velcdn.com/images/rg970604/post/5b6f246b-f40a-4ec1-96e8-0ccb2d52cfd2/image.png)
![](https://velog.velcdn.com/images/rg970604/post/fc101087-d564-4a7f-b012-59c1272d075d/image.png)