본문 바로가기

핵심 이론 파헤치기

HTTP

HTTP

  • Hypertext(HTML) Transfer Protocol(통신규약)
  • tim berners-lee 웹 창시자 : 웹브라우저와 웹서버 사이의 통신 규약


역할

웹브라우저와 웹서버가 서로 데이터를 주고받을 때, 웹브라우저는 웹서버를 찾아가서 어떤 정보를 요청하고(request), 웹 서버는 그 요청에 따라서 적당한 정보를 응답(response)한다.


요청과 응답?


사실 컴퓨터 사이의 일이기 때문에, 그 사이에 엄격한 규칙이 있다.

그 규칙은 문자로 되어 있는 단순한 메세지이기 때문에 복잡하지는 않다.  

그 메세지를 확인할 수 있는 도구가 있다.


크롬에서 오른쪽 마우스 버튼을 눌러서 검사를 하면 네트워크 탭을 확인할 수 있는데,

이것은 웹브라우저와 웹서버가 서로 데이터를 주고받는 모습을 볼 수 있다.




Name에 있는 파일을  더블클릭하면 HTML정보를 웹브라우저가 요청하고 웹서버가 응답하는 자세한 내용을 오른쪽에서 볼수 있다.


그 중에서 Request Headers라는 부분이 웹브라우저가 웹서버에게 요청할 때 작성한 요청서. 


그럼 웹서버는 그 요청서에 따라서 어떤 정보를 만든 다음에 그것을 Response Headers라고 하는 응답헤더를 통해서 웹브라우저에게 보내준다.


Request Headers

  • User-Agent는 웹브라우저 입니다. 어떤 웹브라우저로 요청했는지 정보가 넘어가고 웹서버는 그 정보를 받아서 어떤 브라우저가 접속하고 있는지 통계를 낼 수 있다. 또는 웹브라우저의 어떤 종류에 따라서 모바일에 접속했다면 그에 최적화된 페이지를 보내주고 데스크탑에 최적화 됐다면 그에 최적화된 페이지를 보여준다.
  • Accept-Language : 이 웹브라우저가 수용할 수 있는 언어들을 보여준다.
  • Accept-Encoding : gzip ... 등 : 서로 데이터를 주고받을 때, 웹서버에서 데이터가 응답할 때 그 양이 크다면 gzip 방식으로 웹서버가 압축을 해서 웹브라우저에 쏴준다.


Response Headers

보이지 않는 이런 정보들도 같이 보내고 있다.

  • Content-Encoding : gzip 웹서버가 압축해서 gzip방식으로 보냈다라면 압축을 풀겟다.
  • Content-type : 응답한 정보가 무엇인지(html), 인코딩이 무엇(utf8)로 되었는지 확인할 수 있다.


핵심 : 눈에 보이지는 않지만 웹서버와 웹브라우저가 주고받는 풍부한 정보(Request Headers, Response Headers 등)가 있다는 것.