[HTTP 완벽 가이드] 1장

Sangwon·2023년 6월 27일

학습 목적(정리)로 작성되었고, 모든 내용이 정리되어 있지는 않습니다.

URI

웹 서버는 수많은 리소스를 가지고 있기 때문에, 이들을 식별하기 위해 URI를 사용한다.
이를 통해 클라이언트, 서버가 웹 서버에 있는 리소스를 고유하게 식별할 수 있다.

URI는 URL, URN 크게 두 종류로 나눌 수 있다.

URL (Uniform Resource Locator)

URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 서술한다.
프로토콜 (scheme), 서버의 인터넷 주소, 웹 서버의 리소스의 세 부분으로 이루어진 표준 포맷을 따른다.

URN (Uniform Resource Name)

한 리소스에 대해, 리소스의 위치에 영향 받지 않는 유일무이한 이름을 말한다.
따라서, URN은 리소스의 위치가 변하더라도 URN이 변하지 않는다면 어떤 네트워크 접속 프로토콜로 접근하여도 문제가 없다. 하지만, 리소스 위치 분석을 위한 효율적 인프라가 아직 구축되지 않아 널리 채택되지 않았다.

TCP Connection

HTTP 요청 , 응답 메시지가 웹 클라이언트 - 서버 간 트랜잭션으로 통신이 되는 것은 알았지만,
TCP Connection 관점으로 자세히 살펴보고자 한다.

TCP

전송 계층 프로토콜로, 다음과 같은 사항을 보장한다.

  • 오류 없는 데이터 전송
  • 순서에 맞는 전달
  • 조각나지 않는 데이터 스트림

따라서, TCP Connection이 맺어지면 신뢰성 있는 의사소통이 가능하다.

IP

네트워크 계층 프로토콜로, IP/Port 를 통해 최종적으로 TCP/IP 커넥션이 맺어진다.
이 때 서버의 IP주소는 앞서 언급한 URL을 통해 알 수 있는 것이다.
(URL에는 대부분 호스트명이 있고, DNS를 통해 IP주소로 얻을 수 있다.)

포트 번호의 경우, HTTP는 기본적으로 80번 포트를 가정하고 있다.
(만약 URL에 포트번호가 있다면, 그것을 포트번호로 사용하면 된다.)

이렇게 TCP/IP 커넥션이 HTTP 통신을 위해 맺어진다.

HTTP 프로토콜 버전

HTTP/0.9

  • GET 메서드만 사용 가능하다.
  • MIME 타입, 헤더, 버전 번호는 지원하지 않는다.

HTTP/1.0

  • keep-alive 커넥션, 프락시 연결 지원 기능 추가

HTTP.1.1

  • HTTP 설계의 구조적 결함 조정, 성능 최적화 등을 지원하며 현재의 HTTP 버전이다.

HTTP/2.0

  • 향후 10장에서 자세히 다룬다.
profile
컴퓨터공학을 전공하였고, 현재는 금융업에 종사하며 투자에 관심이 많습니다.

0개의 댓글