이번 포스트는 이고잉님의 'HTTP 소개' 강의를 듣고 정리한 내용입니다.
https://opentutorials.org/course/3385/21675
강의를 듣고 복습하기 위해 F12를 눌러서 ㅋㅋ 개발자 도구에 들어왔다.
이고잉님 화면과 다르지만 겹치는 부분 위주로 복습을 해보겠다!
HTTP Request Header는 이렇게 이루어져 있다.
Request Line과 Request Headers를 합쳐서 Request Message Header
그리고 혹시 웹브라우저가 서버에게 보내야 할 컨텐츠가 있다면? (GET이 아니라 POST Method 이용한 경우)
한 칸을 띄우고
Request Message Body가 들어간다.
- GET /1.html HTTTP/1.1
(이고잉님화면에는 이 Request Line이 가장 먼저 나왔지만 지금은 좀 바뀐 듯...;-;)
GET은 Request Method 중 하나 (GET, POST, PUT, DELETE 등이 있다.)
GET은 데이터를 웹 서버로부터 가져올 때 쓰는 Method이다
/1.html => 우리가 웹서버한테 요청하는 정보가 무엇인가
HTTP/1.1 => http 버전 정보
- Host: localhost::8080
Host는 인터넷에 연결된 컴퓨터 한 대, 한 대를 식별하는 이름이다.
우리가 요청하는 웹사이트의 웹서버 주소 @_@를 적는다.
(하나의 웹서버가 여러개의 도메인을 서비스할 수 있다. A라는 서버가 a.com, b.com, c.com이라는 웹 사이트를 호스트한다고 가정해보자. 웹 서버는 Host에 있는 정보에 따라 다른 정보를 보내준다. - 가상 호스트)
한 대의 컴퓨터에는 여러개의 서버가 설치되어 있을 수 있다.
여기서는 8080이라는 그 포트 번호에 등록된 웹 서버를 의미.
- User-Agent
- 웹 브라우저의 다른 표현
- 요청하는 웹 브라우저가 어떤 웹브라우저인지, 어떤 운영체제를 사용하는지 등등에 관한 정보.
- 경우에 따라 User Agent가 크롬이나 파이어 폭스가 아니라 로봇!이 접속한 경우
웹 서버는 이 User Agent 정보를 바탕으로 그런 접속을 차단해버릴 수 있다.
- Accept-Encoding
- 웹 서버와 브라우저가 통신할 때, 응답할 데이터 양이 많으면 그것을 압축해서 전송한다.
웹 브라우저가 그 압축을 풀어서 처리 -> 네트워크 자원을 아낄 수 있다.
- Accept-Encoding은 웹 브라우저가 어떤 압축 방식을 지원하는 지 웹 브라우저에게 알려주는 것.
"나는 이런이런이런 방식 압축은 accept할 수 있으니까 이런 압축 방식 중 하나로 보내줘~"라는 의미
- 그럼 웹 서버는 그 중 자기가 원하는 방식 하나로 웹 브라우저에게 압축해서 데이터를 보내준다.
- If-Modified-Since
- 웹 브라우저가 가지고 있는 파일이 언제 마지막으로 다운로드 된 것인지에 대한 정보
- 이걸 서버에게 알려주면 서버가 응답할 때, 자기가 가지고 있는 파일랑 비교해서
만약에 자신이 가지고 있는 파일이 더 최신이면 그것을 보내주고,
그렇지 않으면(즉, 웹 브라우저가 굳이 한번 더 다운로드 할 필요 없으면) 안 보내준다.
'TIL' 카테고리의 다른 글
Ajax (2) - Fetch API (0) | 2020.07.15 |
---|---|
Ajax (1) - Intro (0) | 2020.07.15 |
HTTP (3) HTTP Response Message (0) | 2020.07.15 |
HTTP (1) Intro (0) | 2020.07.15 |
인터넷 Server와 Client (0) | 2020.07.14 |