HTTP 완벽 가이드 라는 책을 보면서 어떤 내용을 공부했는지, 요약 겸 챕터별로 정리해보려한다.
I. HTTP: 웹의 기초
1장 HTTP 개관 | 2장 URL과 리소스 | 3장 HTTP 메시지 | 4장 커넥션 관리 |
---|---|---|---|
1.1 HTTP: 인터넷의 멀티미디어 배달부 | 2.1 인터넷의 리소스 탐색하기 | 3.1 메시지의 흐름 | 4.1 TCP 커넥션 |
1.2 웹 클라이언트와 서버 | 2.2 URL 문법 | 3.2 메시지의 각 부분 | 4.2 TCP의 성능에 대한 고려 |
1.3 리소스 | 2.3 단축 URL | 3.3 메서드 | 4.3 HTTP 커넥션 관리 |
1.4 트랜잭션 | 2.4 안전하지 않은 문자 | 3.4 상태 코드 | 4.4 병렬 커넥션 |
1.5 메시지 | 2.5 스킴의 바다 | 3.5 헤더 | 4.5 지속 커넥션 |
1.6 TCP 커넥션 | 2.6 미래 | 3.6 추가 정보 | 4.6 파이프라인 커넥션 |
1.7 프로토콜 버전 | 2.7 추가 정보 | 4.7 커넥션 끊기에 대한 미스터리 | |
1.8 웹의 구성요소 | 4.8 추가 정보 | ||
1.9 시작의 끝 | |||
1.10 추가 정보 |
웹 Client와 웹 서버는 HTTP 프로토콜로 의사소통을 한다.
HTTP는 웹에서 전송되는 객체 각각에 MIME 타입 이라는 데이터 포맷 라벨을 붙인다
당장 어떠한 사이트에 접속해도 MIME형식인 Content-type
을 볼 수 있다.
URI(uniform resource identifier)은 통합 자원 식별자라고 하며, 리소스를 고유하게 식별하는 역할
URI에는 URL과 URN이 속한다.
URL(uniform resource locator)은 통합 자원 지시자라고 하며, 특정 서버의 한 리소스에 대한 구체적인 위치를 서술
Ex) https://velog.io/@yl9517
를 예시로 들어보자.
https://
는 리소스에 접근하기 위해 사용되는 프로토콜 (https 프로토콜 사용)velog.io
는 서버의 인터넷 주소 /@yl9517
은 리소스의 위치URN(uniform resource name)은 위치에 관계없이 유일무이한 이름 역할
HTTP는 애플리케이션 계층 프로토콜
인터넷과 상호작용하는 웹 애플리케이션
클라이언트의 모든 HTTP 요청을 받아서 (본인의 할일 후) 서버에 전달
주로 보안을 위해 사용 됨. 중간에서 요청과 응답 필터링을 한다.
일반적으로 크게 포워드 프록시(forward proxy)와 리버스 프록시(reverse proxy)로 나뉘는데, 자세한 내용은 추후에 따로 다루겠다.
특별한 종류의 HTTP 프라시 서버.
클라이언트가 한번 이상 요청한 데이터에 대한 정보를 가지고 있으므로, 다음 요청 시 멀리 있는 디스크보다 먼저 데이터를 제공함
주로 HTTP 트래픽을 다른 프로토콜로 변환하기 위해 사용됨.
게이트웨이는 자신이 진짜 서버인것처럼 요청을 다룸
두 커넥션 사이에서 데이터를 그대로 전달해주는 HTTP 애플리케이션.
SSL 프로토콜을 통과시키기 위해 HTTP커넥션으로 전송
사용자를 위해 HTTP 요청을 만들어주는 클라이언트 프로그램
Ex) 스파이더, 웹로봇