View

 이전 글에서 HTTP 프로토콜은 요청을 보내고 응답을 받을 때 Message를 보낸다고 했다. 좀 더 세부적으로 정리해보려고 한다.


HTTP Request Message

1) Request Line 

  Request Line(요청줄)은 Method , URI , HTTP version으로 구성되어있다. 

GET / HTTP/1.1

 위에 나오는 것 처럼 메서드와 URI , HTTP 버전은 스페이스바로 구분된다. 검색해보면 Method URI HTTP Version CRLF라고 나와있는 것이 있다. 여기서 CRLF는 ASCII 코드에 나오는 Carriage Return(커서를 앞으로 보내주는 것)과 LIne Feed(다음 줄로 이동시키는 것 )를 합친 것을 말한다. 즉 , 엔터키의 역할을 한다. 

  •   HTTP Methods (메서드)

  메서드는 서버에게 어떤 동작을 취해야 할지 알려준다. 그래서 가끔씩 보면 method를 verb 라고 지칭하는 곳도 있다.

 제일 많이 쓰는 GET과 POST를 보자면 GET 방식은 body에 데이터를 넣는 대신 URL에 파라미터를 넣어 데이터를 보낸다. 이에반해 POST 방식은 Request body에 데이터를 넣어 서버에 전송한다. 즉, 메서드를 통해 서버에게 어떤 동작을 취하면 될 지 알려주는 것이다.  

2) headers

header는 요청 메세지에 추가정보를 더해준다.  

  • Connection :  1.0 버전을 지나 1.1버전에 오면서 달라진 것이 하나 있는데, 앞서 말한 HTTP 특성 중 Connectionless(비연결성)과 관련이 있다. 응답이 끝나면 연결이 끊기는 것에 불편함이 생겼다. 그로인해 1.1 버전 부터는 클라이언트가 접속을 끊으면 연결이 끊기도록 업그레이드 되었다. 그래서 header 를 보면 Connection : keep-alive라고 되어있는 것을 볼 수 있다.  
  • Host : HTTP 1.1 버전에서 반드시 명시해주어야 하는 헤더이다.  이로 인해 한 서버에서 여러가지 주소를 줄 수 있게 되었다. 서버는 같지만 w94dev.tistory를 host로 주면 PC로 가는 것이라고 치면 , m.w94dev.tistory를 치면 모바일 버전으로 가게 된다. 포트번호를 적지 않았을 때는 기본 80 번으로 들어가게 된다.

  • cache-control :  먼저 캐시는 응답을 통해 온 리소스의 복사본을 저장한다. 그래서 처음에 웹사이트를 들어가게 되면 리소스가 다운되는 시간이 걸리지만 그 다음에 들어갈 때는 웹사이트가 빨리 로드 되는 것이다.  캐시와 관련된 것은 다음 사이트에서 더 자세하게 알 수 있다.

 

Prevent unnecessary network requests with the HTTP Cache

How can you avoid unnecessary network requests? The browser's HTTP Cache is your first line of defense. It's not necessarily the most powerful or flexible approach, and you have limited control over the lifetime of cached responses, but it's effective, it'

web.dev

3) Message-body

HTTP Request가 전송하는 데이터를 이 body에 담아서 보낸다. 만약 데이터가 없을 경우에는 비어있기도 하다.

Share Link
reply
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31