📌HTTP 메시지 구조
💡요청 라인(Request-Line)
HTTP 요청 메시지의 첫 라인은 메소드와 요청하는 자원, 프로토콜 버전으로 구성 된다.
- 메소드
요청하는 자원에 대해 웹 서버에게 내리는 명령이다. 종류로는 GET, POST, HEAD, PUT, DELETE, TRACE, CONNECT, OPTIONS 등이 있다. - 요청 URI
요청하는 자원의 식별자이다. 즉 HTML이나 이미지, 동영상, 애플리케이션 등이 있는 가상의 경로이다. 웹 서버는 이 식별자를 사용하여 해당 자원을 찾는다. - HTTP 버전
요청 정보가 어떤 버전에 맞추어 작성했는지 웹 서버에게 알려주기 위함이다.
※HTTP 요청 메시지에서 body 본문
위 이미지에서 초록색 테두리고 되어 있는 것은 요청 헤더의 끝을 표시하는 공백 라인이다. GET 요청인 경우 공백 라인으로 끝나지만, POST 요청인 경우 공백 라인 다음에 서버에 보낼 데이터를 담을 [message body]가 온다. GET 방식에서 보낼 데이터가 있는 경우 URL 주소에 붙여 보낸다.
💡응답 라인(Status-Line)
응답 메시지의 첫 라인은 응답 결과에 대한 상태 정보를 담고 있다. 프로토콜 버전과 상태 코드, 설명으로 구성된다.
- 상태코드
상태 코드 200은 요청이 성공적으로 처리되었다는 뜻이다. 상태 코드에 대한 추가적인 설명은 뒤에 따로 포스팅하도록 하겠다. - 상태설명
사람이 이해할 수 있는 짧은 상태 코드 설명이다.
💡HTTP 헤더
서버가 요청을 처리할 때 참고하라고 클라이언트에서 웹 서버에게 알려주는 정보이다. 즉, HTTP 전송에 필요한 모든 부가 정보를 담고 있다. 예를 들어 메시지 바디의 종류나 크기, 압축 여부, 브라우저 정보, 캐시 관리 정보 등이 있다.
헤더 이름은 대소문자 구분이 없지만, 헤더 값은 대소문자 구분이 있다.
헤더에는 세 가지 종류가 있는데 요청이나 응답 모두에 적용할 수 있는 '일반 헤더'와 요청 또는 응답 둘 중 하나에만 적용할 수 있는 '요청 헤더 또는 응답 헤더', 보내거자 받는 본문 데이터를 설명하는 '엔티티 헤더'가 있다. HTTP 헤더는 이 정도로만 받아 들이면 된다.
💡HTTP 메시지 바디
실제 전송할 데이터를 담는 곳으로 HTML 문서, 이미지, 영상, JSON 등 byte로 표현할 수 있는 모든 데이터를 전송할 수 있다.
reference - 모든 개발자를 위한 HTTP 웹 기본 지식(김영한)
'CS > HTTP' 카테고리의 다른 글
HTTP 상태코드 (0) | 2022.07.09 |
---|---|
HTTP 메소드 활용 (0) | 2022.07.09 |
HTTP 메소드 - GET,POST,PUT,PATCH,DELETE (0) | 2022.07.09 |
HTTP 프록시란? (0) | 2022.07.08 |
HTTP 프로토콜이란? (0) | 2022.07.08 |