본 게시글은 김영한님의 HTTP 웹 기본 지식 강의를 보고 정리한 글입니다.
HTTP 통신을 한다고 우리는 알고 있었다. 그렇다면 이런 수신과 발신의 관계를 당연히 할 것인데 이를 HTTP 메시지를 활용하여 한다고 한다. 어떤 것인지 한 번 알아보자.
정말 이 그림 하나로 설명이 가능할까? 가능하다! 하나씩 파헤쳐보자.,
우선 위에부터 하나씩 Request 즉 요청을 보냈을때의 메시지부터 하나씩 보자.
주소 요청은 URL: http://google.com/search?q=hello&hl=ko
이라고 한다.
그리고 HTTP Method: GET, HTTP 버전: HTTP/1.1 이다.
Start-line
GET /search?q=hello&hl=ko HTTP/1.1
이렇게 start-line이 구성이 될 거다.
그리고 각각은 다음과 같은 값을 지닐 수 있다.
HTTP Method: GET,POST,PUT, DELETE, PATCH..... 이 존재한다.
Request-Line: 절대경로"/"로 시작하는 경로이다. 그러니까 중간에 도메인 뒤 / 부터 시작하는 부분이라고 보면 된다.
HTTP Version: HTTP의 버전이 오는 곳이다.
HTTP header
헤더 부분은 미리 말하지만 되게 다른 곳에 비해서 많이 들어간다. 표준 헤더가 진짜 엄청 많다.
다 찾아보려면 구글링을 하는 것을 추천한다. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers 이곳을 참고하면 좋을 거 같다. 그치만 일단 가장 많이 나오는 헤더에 대해서는 알아보자.
Cache-Control, Connection, Date, Pragma, Trailer, Transfer-Enco, Upgrade, Via, Warning가 있고 Request Header에는 Accept, Accept-Charset, Accept-Encoding, Accept-Language, Authorization, Expect, From, Host, If-Match, If-Modified-Since, If-None-Match, If-Range, If-Unmodified-Since, Max-Forwards, Proxy-Authorization, Range, Referer, TE, User-Agent등이 있고 Entity Header에는 Allow, Content-Encoding, Content-Language, Content-Length, Content-Location, Content-MD5, Content-Range, Content-Type, Expires, Last-Modified, extension-header가 있다.
뭐 이정도? 되게 많다. 간단하게만 보면 Content-Type : text/html;charser=UTF-8, Content-Length: 3423
이렇게 2개는 무조건 거의 들어가서 자주 볼수 있는 헤더항목일 것이다.
body
여기에는 일반적으로 실제 전송할 수 있는 데이터들이 온다.
Start-line
HTTP 상태코드: 요청 성공, 실패를 나타낸다.
이렇게 구성이 된다.
GET /search?q=hello&hl=ko HTTP/1.1
이렇게 start-line이 구성이 될 거다.
HTTP header
요청과 동일
body
요청과 동일
- 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식(https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC)