HTTP를 간단하게 얘기해보자면

클라이언트 : 서버님 파일(HTML,Img 등)주세요 (요청, request)    
서버 : 여기있습니다 (응답, response)


컨텐츠를 주고받기 위해서는 서버가 클라이언트가 서로가 알아들을 수 있는 공통의 메시지가 필요하다. 그 메시지를 HTTP라고 하며, 크게 request와 response로 구분된다. 개발자도구의 네트워크탭에 가보면 웹서버와 웹브라우저가 어떠한 통신을 하고 있는지 모니터링 할 수 있으며, 헤더로써 HTTP 메세지를 볼 수 있다.


Request

https://www.ntu.edu.sg/home/ehchua/programming/webprogramming/HTTP_Basics.html

GET 요청방식

Host 요청하려는 서버 호스트 이름과 포트번호

User-agent 웹브라우저의 다른 표현, 클라이언트 프로그램 정보(웹브라우저, 운영체제)를 담고 있다. 나중에 통계를 낼 때, 어떤 운영체제, 웹브라우저가 많이 접속했는 지 알 수 있다. 로봇이 접근할 수 있는데 웹서버는 이 정보를 바탕으로 그 요청을 차단할 수 있다.

Accept_encoding 웹브라우저 웹서버가 서로 통신할 때 응답하는 데이터의 양이 많으면 그걸 압축해서 전송하면 웹브라우저가 그 압축을 풀어서 처리할 수 있음 (네트워크의 자원을 아낄 수 있음) '이 웹브라우저는 어떤어떤 압축방식을 지원합니다' 라고 적어놓은 것

If-modified-since 우리가 마지막으로 언제 이 파일을 다운받은 건지 알려줌. 그리고 웹서버는 응답할 때 자기가 가지고 있는 파일이랑 뭐가 더 최신인지를 비교해서 자기가 가지고 있는 파일이 최신이면 전송해주고, 최신이 아니라면 전송하지 않음.


Response

https://www.ntu.edu.sg/home/ehchua/programming/webprogramming/HTTP_Basics.html


status code 이곳에 정리가 잘 되어 있다.

content-type 웹서버가 응답할 때 파일의 형식을 알려줌

content-length 응답하는 컨텐츠의 크기에 대해 알려줌

content-encoding 응답하는 컨텐츠의 압축방식

last-modified '이 정보는 언제 마지막으로 언제 수정되었습니다.' 를 알려줌


기본적으로 알아놓으면 좋을만한 것들을 정리했다.

그때그때 찾아서 보면 좋을만한 Header에 대해 자세한 정보를 담고 있는 블로그의 링크를 남긴다.

http://rangken.github.io/blog/2015/http-headers/

https://jeong-pro.tistory.com/181