728x90

- 이번 시간에는 웹 서버와 웹 브라우저가 주고받는 정보를 조금 더 자세하게 들여다 보려고 합니다.

- 위와 같이 Request Headers 에서 첫 행을 Request Line 이라고 합니다.
- 아래에 있는 정보들은 Request Headers 라고 합니다.
- Request Line 과 Request Headers 를 합쳐서 Request Message Header 라고 합니다.
- 서버 쪽으로 전송해야 할 정보가 있다면 정보는 실제 정보인데 그런 것을 Body 라고 합니다.
- Body 와 Header 는 blank line 을 두어서 구분합니다.

- GET 은 웹 서버로부터 정보를 가져올 때 쓰는 것입니다.
- 로그인 할 때 정보를 전달하는 것은 POST 라고 합니다.
- 아무튼 우리의 Request Line 을 살펴봅시다.
Web Server 는 우리의 Web Browser 가 보내온 Request Headers 를 보고 어떤 일을 해야 할지 판단한 다음 요청한 작업을 수행할 것입니다.
GET /1.html HTTP/1.1 을 웹 서버가 받게 되면 웹 서버는 다음과 같은 것을 이해하게 됩니다.
'사용자는 1.html 이라는 파일을 얻고자 요청하고 있고 HTML 1.1 통신 규약을 사용하겠구나'라고 생각하게 됩니다. - 이제는 Request Header 를 살펴볼까요?
다양한 Request Header 에서 반드시 포함해야 하는 내용으로는 Host 가 있습니다. Host 는 한 대 한 대의 컴퓨터를 구분하는 호스트 이름입니다. Host 라고 적는 것은 요청하는 웹 서버의 주소를 적는 것이라고 이해하면 됩니다.
좀 어려운 내용이긴한데, Host 가 있으면 하나의 웹 서버가 여러 개의 서비스를 운용할 수 있게 됩니다. 그런 경우에는 예를 들면 A라는 웹서버가 A.com B.com C.com 이라는 서로 다른 웹 사이트들을 서비스하고 있고 웹 서버는 이 Host 에 적힌 정보에 따라서 서로 다른 정보를 보내줄 수 있게 됩니다. 이것을 '가상 호스트'라고 부릅니다.
8080 이라는 숫자가 있는데요. 이 부분을 Port 라고 부릅니다. 한 대의 컴퓨터에 여러 개의 서버가 설치되어 있을 수 있거든요. 이런 경우 8080 이라고 한다면 8080 Port 에 등록되어 있는 웹 서버를 의미합니다.
다른 것도 살펴봅시다. User-Agent 는 웹 브라우저의 다른 표현입니다. 웹 브라우저는 User-Agent 라고도 합니다. 즉 여기서 나타내는 내용은 현재 사용자가 사용하고 있는 웹 브라우저가 어떤 것인지 보여주고 있습니다. 또한 User-Agent 에는 사용자가 사용하고 있는 컴퓨터의 운영체제와 운영체제의 버전, CPU 는 어떤 것을 사용하고 있는지 알려주고 있습니다. 추후에 여러분이 웹 서버를 운영하다보면 이 웹 서버에는 어떤 컴퓨터의 운영체제를 사용하고 어떤 웹 브라우저를 사용하고 있는지 통계를 User-Agent 를 통해서 살펴볼 수 있게 됩니다. 또한 이 User-Agent 에는 검색 엔진 등의 컴퓨터 기계가 방문할 수도 있습니다. 이런 경우 관리자는 이런 접근자의 접근을 차단할 수 있습니다. 자신이 원하지 않는 요청일 수도 있거든요. User-Agent 는 이런 목적으로 사용되게 됩니다.
Accept-Encoding 이라는 것은 웹 서버가 통신 해야 하는 내용이 많아지게 되면 그 내용을 압축해서 전송하게 되는데, 웹 브라우저가 압축을 풀어서 처리할 수 있습니다. 그러면 네트워크의 자원을 아낄 수 있습니다. 그런데, 그럴 때 이 '웹 브라우저는 어떤 압축방식을 지원합니다' 라는 내용을 적어놓은 것이라고 이해하시면 됩니다. 그럼 웹 브라우저는 Accept-Encoding 에 적혀있는 Encoding 방식 중에 자신이 선호하는 것을 채택해서 마음놓고 보내줄 수 있게 됩니다.
If-Modified-Since 는 우리가 웹 서버에게 어떤 페이지를 요청했는데, 이후에 같은 페이지를 또 요청할 수도 있겠죠. 그러면 웹 브라우저는 모든 시도마다 다 다운을 받게 되면 효율적이지 않습니다. 그런 경우에 If-Modified-Since 가 의미하는 것은 웹 브라우저가 보내주는 이 파일은 이 시점에 마지막으로 다운로드 받은 파일임을 의미합니다. 웹 서버는 응답할 때 자기가 갖고 있는 파일과 뭐가 더 최신 파일인지를 비교하여 자신이 갖고 있는 파일이 최선이라면 자신이 갖고 있는 파일을 전송해주고, 자신이 갖고 있는 파일이 최신이 아니면 다시말해서 웹 브라우저가 다운로드 받을 필요가 없다면 데이터를 보낼 필요가 없습니다. 웹 서버와 웹 브라우저 둘 다 윈윈인 것이죠.
이렇게 Request Header 에는 중요한 정보들이 담겨 있습니다. 우리가 배워야할 내용들 중 가장 중요한 내용들이기도 합니다.
출처 : 생활코딩 https://opentutorials.org/course/4848
'[생활코딩] Server > HTTP' 카테고리의 다른 글
| HTTP 5. 수업을 마치며 (0) | 2023.06.27 |
|---|---|
| HTTP 4. Response message (0) | 2023.06.27 |
| HTTP 2. 소개 (0) | 2023.06.27 |
| HTTP 1. 수업소개 (0) | 2023.06.27 |