01장. HTTP 개관
Book Network HTTP
- TOC
📌 읽으면서 밑줄친 내용 그대로 옮겨 적음. *이 붙은 문장은 생각.
- 클라이언트는 서버에게 HTTP 요청을 보내고 서버는 요청된 데이터를 HTTP 응답으로 돌려준다.
- 리소스는 요청에 따라 콘텐츠를 생산하는 프로그램이 될 수도 있다.
- *동적 리소스는 실시간을 뜻하는가?
- MIME (Multipurpose Internet Mail Extensions, 다목적 인터넷 메일 확장)
- 사선(/)으로 구분된 주 타입(primary object type)과 부 타입(specific subtype)으로 이루어진 문자열 라벨
- 서버 리소스 이름은 통합 자원 식별자(uniform resource identifier, URI)
- 통합 자원 지시자(uniform resource locator, URL)는 리소스 식별자의 가장 흔한 형태다.
- 오늘날 대부분의 URI는 URL이다.
- 유니폼 리소스 이름(uniform resource name, URN)
- 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할
- *왜 여기서는 통합 자원이라고 번역하지 않았을까?
- *개인 위키에 제목이 바뀌어도 같은 경로로 접근하기 위해 모든 문서에 UUID 를 붙여놨는데, URN도 비슷한 용도일까?
- 통합 자원 지시자(uniform resource locator, URL)는 리소스 식별자의 가장 흔한 형태다.
- 트랜잭션: *클라이언트-서버 사이의 요청/응답의 상호작용?
- 모든 HTTP 요청 메시지는 한 개의 메서드를 갖는다.
- 상태 코드는 클라이언트에게 요청이 성공했는지 아니면 추가 조치가 필요한지 알려주는 세 자리 숫자다.
- HTTP 응답 메시지
- 본문은 임의의 이진 데이터를 포함할 수 있다.
- HTTP는 애플리케이션 계층 프로토콜이다.
- 호스트 명은 도메인 이름 서비스(Domain Name Service, DNS)라 불리는 장치를 통해 쉽게 IP로 변환될 수 있다.
- HTTP URL에 포트번호가 빠진 경우에는 기본값 80이라고 가정하면 된다.
텔넷 대신 nc(netcat) 을 이용한 간단한 HTTP 트랜잭션
echo -e "HEAD / HTTP/1.0\n\n" | nc google.com 80
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Date: Thu, 16 Feb 2023 10:24:39 GMT
Server: gws
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Expires: Thu, 16 Feb 2023 10:24:39 GMT
Cache-Control: private
Set-Cookie: 1P_JAR=2023-02-16-10; expires=Sat, 18-Mar-2023 10:24:39 GMT; path=/; domain=.google.com; Secure
Set-Cookie: AEC=ARSKqsIotnI-mgT8MXUhtQEn0i34c3w4mjZKA_chZqtMdOU5xY4BssaiGio; expires=Tue, 15-Aug-2023 10:24:39 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
Set-Cookie: NID=511=Jz8LZcD1RsxgNelP_nxZ7lvtmLkRA94UiE4JOxit7gQVBIAsOGV0vfrts2ss2OwjfbwmT6Yy01Vb2-4gg5E3KvcEaeI0uPDA-GIeQPRu2QOmO5X1tq7GNx-Z4QvEYyuZPOPqlnVv9Nm4J7rXX-TyezU0Ksxy_7VQ_OJ-MhoyF9E; expires=Fri, 18-Aug-2023 10:24:39 GMT; path=/; domain=.google.com; HttpOnly
- 프락시는 모든 웹 트래픽의 흐름 속에서 신뢰할 만한 중개자 역할을 한다. 또한 요청과 응답을 필터링한다.
- 게이트웨이는 주로 HTTP 트래픽을 다른 프로토콜로 변환하기 위해 사용된다.
- *어댑터 패턴 같다.
- HTTP 터널을 활용하는 대표적인 예로, 암호화된 SSL 트래픽을 HTTP 커넥션으로 전송함으로써 웹 트래픽만 허용하는 사내 방화벽을 통과시키는 것이 있다.
- *읽으면서 가장 이해가 안 갔던 부분. 그림과 설명 매칭 시키는 것이 어렵다.
알게된 점
- URL 과 URI 의 차이. 그간은 어떤 것의 약어인지, 둘의 차이가 무엇인지 몰랐다. 딱 책의 내용만으로 파악했을 때는 URI 가 상위 개념, URL/URN 이 하위 개념.
- HTTP 메서드에 HEAD 라는 게 있다는 걸 처음 알았다.
관련해서 같이 이야기 나누고 싶은 점
- 웹의 구성요소로 프락시, 캐시, 게이트웨이, 터널, 에이전트 가 소개되었는데 우리 회사 서비스에도 이러한 요소들이 적용되어 있나요? 없다면 필요성을 느끼는 요소가 있나요?
- 캐시 서버?가 따로 있다는 건 들었던 것 같음
- 읽으면서 이해가 안 갔던 부분이 있나요? 혹은 이미 다 아는 내용이었나요?
- 아는 내용이었다면 과거에 어떻게 공부하셨나요? (e.g. 정보처리기사, 네트워크 수업, …)