HTTP 완벽 가이드를 읽고 정리한 글입니다 📒
개관이라는 단어는 너무 웅장한 것 같다. HTTP 의 시작이라고 말하고 싶다. HTTP 프로토콜은 현대 인터넷의 공용어로서, 굉장히 중요한 역할을 하고 있다. 브라우저의 동작 원리는 어렴풋이 알지만 어떻게 통신하는지 알고 싶어서 이 책을 읽기로 했다. 천천히여도 정확히 읽고자한다. 21장까지 화이팅
인터넷에 접속하게 되면, 여러개의 이미지 혹은 동영상, 텍스트 파일등이 보인다. HTTP는 이것들을 간편하고 정확하게 웹 브라우저에게 전달하여 우리가 이것들을 볼 수 있게끔 해주는 배달부 역할을 한다. 그것도 신뢰성 있는 배달부이다.
Http는 신뢰성 있는 데이터 전송 프로토콜을 사용한다. 그렇기 때문에 개발자가 사용자에게 데이터가 잘 도착했는지 혹은, 손상되지 않았는지 확인하지 않아도 된다.
위에서 보여지는 클라이언트는 우리가 잘 사용하는 IE,크롬과 같은 웹 브라우저이다. HTTP 프로토콜을 사용하여 통신하므로 HTTP 클라이언트, HTTP 웹 서버라고 부른다.
웹 서버는 데이터를 클라이언트에게 보낼 수 있는데 이 때, 전송할 수 있는 데이터 타입은 너무 많다. 그래서 웹 서버는 모든 HTTP 객체 데이터에 MIME 타입을 붙인다.
MIME은 사선으로 구분되어 주된 타입 / 부타입
로 타입을 붙인다.
text/html
image/jpeg
웹 서버 리소스는 각자 이름을 가지고 있다. 서버 리소스의 이름은 URI(통합 자원 식별자) 라고 불린다. URI 는 두가지 종류가 있다.
특정 서버의 리소스에 대한 구체적인 위치를 서술한다.
예를 들어, http://www.oreilly.com/index.html 과 같은 것이다.
마지막에 리소스에 대한 주소(노란색)를 입력해주면 URL이 완성된다. 오늘날의 대부분의 URI는 URL이다.
콘텐츠를 이루는 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할을 한다.
URN 은 아직 여전히 실험중인 단계이고, 채택되지 않았다.
HTTP 메시지라는 정형화된 데이터 툴을 통해 웹 서버와 클라이언트가 소통을 한다.
HTTP의 트랜잭션은 요청과 응답 메시지로 구성되어있다.
3장에서 자세히 다룰 것이기 때문에 어떤 메서드가 있는지만 알고가면 된다.
대표 상태 코드는 아래와 같다.
HTTP의 메서드는 단순한 텍스트 구조로 이루어져 있다.
HTTP 가 신뢰성 있는 배달을 할 수 있는 이유는 HTTP 의 독자적은 프로토콜 때문이 아니다. HTTP 프로토콜은 네트워크의 핵심적인 세부사항을 신경쓰지 않는다.
앞서 말했듯이, HTTP 는 신뢰성 있는 배달부라고 말했는데 그게 가능하게끔 하는 것이 TCP/IP 이다. TCP는 HTTP 아래에 있는 Transport layer 단계에 있고, IP 는 Network layer 단계에 있다.
HTTP 아래의 layer들이 패킷이 손상되지 않고, 순서 바뀌는 일 없게끔 도와주어 신뢰성 있게 배달하는 것이다.
요청을 보내기 위해서는 숫자로 된 IP 주소와 Port 번호가 필요하다.
http://207.200.83.29:8000
의 요청은 207.200.83.29
IP 주소의 8000 포트의 서버에 요청을 보내라는 의미이다. 그러나, 우리가 실제로 보는 주소는 대부분 http://wow.com
일 것이다. ( 포트 번호가 적혀있지 않다면 기본적으로 80 포트를 사용한다. )
문자열로 된 주소를 IP 주소로 변환해주어야하는데 이것은 DNS라는 개념을 이해해야한다. 자세한 내용은 추후에 소개하기로 한다 !
HTTP의 프로토콜 버전은 여러 개이다. 나는 잘쓰이는 HTTP 1.0, 1.1 , 2.0 만 정리하고 가려고 한다.
1. HTTP/1.0
: 처음으로 널리 쓰이기 시작한 HTTP 버전이다. HTTP 헤더, 추가 메서드, 멀티 미디어 객체 처리를 추가 했다. 잘 정의된 명세는 아니고, 잘 사용되고 동작하는 도구에 가깝다.
2. HTTP/1.1
: HTTP 설계의 구조적 결함, 잘못된 기능 제거에 집중했다. HTTP/1.1은 현재 HTTP 의 버전이다.
3. HTTP/2.0
: HTTP/2.0은 HTTP/1.1 성능 문를 개선하기 위해 구글이 설계를 진행 중인 프로토콜이다.
Reference | HTTP 완벽 가이드 - 웹은 어떻게 동작하는가 , 오라일리