기본 쌓기/생활코딩

HTTP) HTTP Request message

code_learner 2022. 5. 2. 02:38

https://www.youtube.com/watch?v=1TigiIAPipA&list=PLuHgQVnccGMBd-v_DjNm61EBaDpYZSV1Z&index=3 

 

[Request Header Format]

 

*Request Line
- 제일 먼저 나오는 행(요청 행(Request Line)) : `GET /1.html HTTP/1.1`
- `GET` : 메소드
   데이터를 웹 서버로 가져올 때 씀
   e.g. 주소 치고 엔터 치는 것
- `POST`
   e.g. 로그인 전송 버튼 누르면 데이터 전송


- `/1.html` : 웹 서버에게 요청하는 정보
   웹 서버는 `/1.html`을 보고서 그것에 따라 웹 브라우저가 요청한 정보를 응답해주게 됨


- `HTTP/1.1` : 웹 브라우저가 현재 사용하고 있는/사용할 수 있는 HTTP의 버전이 1.1
   웹 서버는 이 정보를 바탕으로 해서 웹 브라우저에게 적당한 방식으로 통신을 함

 

*Request Header
`Host: localhost:8080`이라는 이 부분부터는 Request Header
- `Host: localhost:8080`:  필수
-- Host : 인터넷에 연결되어 있는 컴퓨터 한 대 한 대를 식별하는 이름 (Host name)
-- Host라고 적는 것은 우리가 요청하는 이 웹사이트 웹 서버의 주소를 적는 것
-- Host가 있으면 하나의 웹 서버가 여러 개의 도메인을 서비스 할 수 있음
-- `8080` : 포트번호


<User-Agent> : 웹 브라우저의 다른 표현
- 웹 브라우저를 User Agent라고도 함
- 즉 요청하는 웹 브라우저가 어떤 웹 브라우저인지를 보여줌
- `(Macintosh; Intel Mac OS X 10_13_5)` : 사용하고 있는 운영 체제가 Macintosh, Intel CPU를 쓰고 있고 Mac OS 버전이 어떻다고 하는 것
- 웹사이트에서 어떤 브라우저와 운영 체제를 쓰는 사람들이 많이 접속하고 있는가 이러한 정보들을 `User-Agent`를 통해서 볼 수 있음
-검색 엔진 로봇 등이 접근하였을 때 요청을 차단하기 위한 목적으로도 사용된다.



<Accept-Encoding> : 웹 브라우저와 웹 서버가 서로 통신할 때 응답하는 데이터의 양이 많으면 그걸 압축해서 전송하면 웹 브라우저가 그것을 압축을 풀어서 처리할 수 있음
- 네트워크의 자원을 아낄 수 있음
- 그때에 이 웹 브라우저는 어떤 압축 방식을 지원한다고 적어놓은 것
-웹 브라우저는 여기에 있는 이 세 가지 방식 중의 하나, 본인이 선호하는 걸 보내줄 수 있음



<If-Modified-Since>
- 지금 우리가 `1.html`이라는 파일을 웹서버에 요청할 때 마다 해당 파일을 다운받는것은 효율적이지 않음
- 그런 경우에 웹 서버는 응답할 때 본인이 갖고 있는 파일이랑 무엇이 더 최신인지를 비교해서 본인이 갖고 있는 파일이 최신이면 전송해주고 최신이 아니면(더 다운로드할 필요가 없으면) 전송하지 않아도 되는 것
- 속도도 빨라지고 효율적이다.