아티클을 읽고 글을 작성한다.
a. 아티클 핵심 내용 요약
웹 브라우저가 서버에 연결되면 웹 브라우저가 페이지의 콘텐츠를 요청하기 위해 서버에 HTTP 요청을 전송하는 것으로 시작합니다. HTTP 요청에는 요청 라인, 요청 헤더, 본문이 포함됩니다.
웹 서버가 클라이언트로부터 요청을 받으면 서버는 요청을 처리하고 응답을 다시 전송합니다.
요청라인
요청 헤더(Request Header)
: 헤더는 요청을 라우팅하는 데 도움이 되는 추가 정보를 클라이언트에서 전달하고 클라이언트가 요청을 수행하는지 나타내며 A/B 테스트, 블루/그린 배포 및 카나리 배포를 지원하는 데 사용할 수 있습니다.
본문
: 본문은 보통 GET 요청에 대해 비어 있으며 POST, PUT 또는 PATCH와 같은 리소스를 조작하는 요청의 경우 본문에는 생성하거나 업데이트할 클라이언트의 데이터가 포함됩니다.
GET /blog/1620 HTTP/1.1
Host: channy.creation.net
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"
sec-ch-ua-mobile: ?0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0(Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36(KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: <https://channy.creation.net/>
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
dnt: 1
sec-gpc: 1
(GET 요청으로 본문이 없는 요청 라인과 헤더만 있는 URL에 대한 전체요청의 예)
웹 서버는 요청을 받고 요청 라인, 헤더 및 본문의 정보를 기반으로 요청 처리 방법을 결정합니다. 요청에 대해 서버는 경로의 콘텐츠를 가져오고 응답을 생성하여 다시 클라이언트로 전송합니다. 응답에는 다음과 같은 내용이 포함됩니다.
클라이언트에게 요청 상태를 알려주는 상태 라인
브라우저에 응답 처리 방법을 알려주는 응답 헤더
해당 경로에서 요청된 리소스 (HTML, CSS, Javascript, 이미지 파일과 같은 콘텐츠 또는 데이터)
HTTP/1.1 200 OK
Date: Tue, 25 May 2021 19:40:59 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
X-Powered-By: Express
Cache-Control: max-age=0, no-cache
Content-Type: text/html; charset=utf-8
Vary: Accept-Encoding
X-Mod-Pagespeed: 1.13.35.2-0
Content-Encoding: br
Keep-Alive: timeout=1, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
<!DOCTYPE html>
<html lang="ko">
<head>
나머지 HTML 항목
(상태 라인에는 HTTP 버전과 요청 상태의 숫자 및 텍스트 표현이 모두 포함됩니다.)
항상 들어가던 URL과 링크를 누르면 뒤에서 이런 복잡한 과정이 일어난다는 것이 신기했고 HTTPS를 사용하면 암호나 신용 카드 정보와 같이 브라우저와 서버 간의 데이터가 암호화 된다는 것을 처음 알게되었다.
도메인 (Domain)은 항상 들어봤던 명칭이었지만 뜻과 역할을 사실 오늘 처음 알게되었는데 웹 사이트의 주소이기도 하면서 특정 서버의 IP 주소를 가리킨다는 것은 새로 알게 된 개념이었다. 그리고 도메인을 사용하여 웹 사이트를 호스팅하는 서버의 IP 주소를 조회하며 이때 DNS 조회를 사용하여 작업을 수행한다는 것도 처음 알게 되었다. DNS 데이터가 다양한 위치에 임시로 저장되는 것이 캐시 (Cache)라고 불리는 것도!
웹 브라우저에서 HTTP 요청을 서버로 전송하고 서버가 요청을 처리하고 응답을 다시 전송하는 피드백과 같은 형태로 정보가 교환되면서 웹 브라우저에 접속할 수 있다는게...(우리는 URL을 적거나 링크만 클릭하면 되는데) 세상 참 편해진 것이구나 하면서 느껴보았다. 나도 실생활을 편하게 만들어 갈 수 있는 그런 개발자가 되어야겠다!