Contents
Http 완벽가이드(Http 개관1)
   Aug 17, 2022     4 min read

1장 : HTTP 개관

HTTP 개관 1부

이 장에서의 목표는 웹 애플리케이션이 HTTP를 이용해 통신하고, HTTP가 어떻게 그 일을 해내는지 개략적으로 아는 것이 목표

  • 얼마나 많은 클라이언트와 서버가 통신하는지
  • 리소스(웹 콘텐츠)가 어디서 오는지
  • 웹 트랜잭션이 어떻게 동작하는지
  • HTTP 통신을 위해 사용하는 메시지의 형식
  • HTTP 기저의 TCP 네트워크 전송
  • 여러 종류의 HTTP 프로토콜
  • 인터넷 곳곳에 설치된 다양한 HTTP 구성요소

이 장에서는 HTTP의 맛보기 장으로 생각하면 될듯하다. 일종의 찍먹이다. 처음에 여러가지 큰틀을 잡아놓으면 디테일하게 들어갈 때 큰틀과 연결 지어 생각할 수 있어서 지식의 이해에 있어서도 좋다.

1부 1장 HTTP개관.

HTTP가 웹 트래픽을 어떻게 전송하는지 알아보자.

웹 서버는 HTTP 프로토콜로 의사소통하기 때문에 보통 HTTP 서버라고 불린다. HTTP 서버는 인터넷의 데이터를 저장하고, HTTP 클라이언가 요청한 데이터를 제공한다.

Untitled

위 그림과 같이 클라이어트는 서버에게 HTTP 요청을 보내고 그것을 요청받은 서버는 HTTP 응답으로 돌려준다.

서버가 제공하는 것 그것은 무엇일까 ?

리소스

웹 서버는 웹리소스를 관리하고 제공한다. 가장 대표적인 웹 리소스는 웹 서버 파일 시스템의 정적 파일이다.

정적파일은 텍스트파일, HTML파일, 마이크로소프트 워드, 어도비 아크로뱃 파일, JPEG 이미지 파일, 한글 파일 등 그 외 모든 종류의 파일을 포함한다.

리소스는 정적 파일 말고도 리소스 요청에 따라 콘텐츠를 생산하는 프로그램이 될 수도 있다.

이를 동적 콘텐츠 리소스 라고 한다. 동적 콘텐츠 리소스란 사용자가 누구인지, 어떤 정보를 요청했는지, 몇 시인지에 따라 다른 콘텐츠를 생성하는 리소스 파일이다.

말이 너무 어렵다. 예를 들어보자.

카메라를 통해서 라이브 영상을 가져와 보여주거나, 주식거래 , 부동산 데이터베이스 검색 등 사용자의 따라 다르게 다 다르게 콘텐츠를 제공한다.

Untitled 1


미디어 타입

인터넷은 많은 데이터 타입을 다르기 때문에, HTTP는 웹에서 전송되는 객체 각각에 MIME(Multipurpose Internet Mail Extensions, 다 목적 인터넷 메일 확장)이라는 데이터 포맷 라벨을 붙인다.

via GIPHY

처음 MIME는 각기 다른 전자메일 시스템 사이에서 메시지가 오갈 때 겪는 문제점을 해결하기 위해 설계되었다.

MIME은 이메일에서 워낙 잘 동작하여 HTTP에서도 멀티미디어 콘텐츠를 기술하고 라벨을 붙이기 위해서 채택되었다.

Untitled 2

웹 서버는 데이터 콘텐츠와 함께 MIME 타입을 보내준다.

MIME 타입은 사선( / )으로 구분된 주 타입(primary object type)과 부 타입(specific subtype)으로 이루어진 문자열 라벨이다.

예를들면

  • HTML로 작성된 텍스트 문서는 text/html 라벨이 붙는다.
  • plain ASCII 텍스트 문서는 text/plain 라벨이 붙는다.
  • JPEG 이미지는 image/jpeg가 붙는다.
  • GIF 이미지는 image/gif가 된다.
  • 애플 퀵타임 동영상은 video/quicktime이 붙는다.
  • 마이크로소프트 파워포인트 프레젠 테이션은 application/vnd.ms-powerpoint가 붙는다.
[MIME 타입의 전체 목록 - HTTPMDN](https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types)

미디어타입 표를 더 알고 싶다면 위의 링크 참고하자.

URI

웹서버 리소스는 각자 이름을 갖고 있기 떄문에, 클라이언트는 관심 있는 리소스를 지목할 수 있다.

서버 리소스 이름을 톰합 자원 식별자(uniform resource indentifier),혹은 URI로 불린다.

URI는 인터넷의 우편물 주소 같은 것으로, 정보 리소스를 고유하게 식별하고 위치를 지정할 수 있다.

  • URI에는 두 가지가 있다.
    • URL
    • URN

‘단테의 컴퓨터 가게’의 웹 서버에 있는 이미지 리소스에 대한 URI라면 아래와 같은 식이다.

https://www.dante-hardware.com/specials/saw-blade.gif

Untitled 3

URL은 프로토콜, 서버, 리소스를 명시한다.

URL

통합 자원 지시자(uniform resource locator, URL) 는 리소스 식별자의 가장 흔한 형태이다.

URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 서술한다. URL은 리소스가 정확히 어디에 있고 어떻게 접근할 수 있는지 분명히 알려준다.

URL의 예시

URL설명
http://www.oreilly.com/index.html오라일리 출판사 홈페이지의 URL
htttp://www.yahoo.com/images/logo.gif야후 ! 웹사이트 로고의 URL
http://www.joes-hardware.com/inventory-check.cgi?item=12731물품 #12731의 재고가 있는지 확인 하는 프로그램에 대한 URL
ftp://joetools4u@ftp.joes-hardware.com/locking-pliers.gif비밀번호로 보호되는 FTP를 통해 locking-pliers.gif 이미지 파일에 접근하는 URL

대부분의 URL은 세 부분으로 이루어진 표준 포맷을 따른다.

  • URL의 첫 번쨰 부분은 스킴(scheme)이라고 불리는데, 리소스에 접근하기 위해 사용되는 프로토콜을 서술한다. 보통 HTTP 프토토콜(http://)이다.
  • 두 번째 부분은 서버의 인터넷 주소를 제공한다.(예: www.joes-hardware.com)
  • 세 번째는 웹 서버의 리소스를 가리킨다.(예: /spcials/saw-blade.gif)

오늘날의 대부분의 URI는 URN을 사용하고 있다.

URN

URI의 두 번쨰 종류는 유니폼 리소스 이름(uniform resource name, URN)이다.

URN은 콘텐츠를 이루는 한 리소스에 대해 그 리소스의 위치에 영향 받지 않느 유일무이한 이름 역할을한다.

이 위치 독립적인 URN은 리소스를 여기저기로 옮기더라도 문제없이 동작한다. 리로스가 그 이름을 변하지 않게 유지하는 한, 여러 종류의 네트워크 접속 프로토콜로 접근해도 문제없다.

URN은 여전히 실험 중인 상태고 아직 널리 채택되지 않았다고 한다.

트랜잭션

HTTP 트랜잭션은 요청 명령(클라이언트에서 서버로 보내는)과 응답 결과(서버가 클라이언트에게 돌려주는)로 구성되어 있다.

  • 요청 명령
  • 응답 결과

이 상호작용은 아래의 그림과 같이 HTTP 메시지라고불리는 정형화된 데이트 덩어리를 이용해 이루어진다.

Untitled 4

HTTP 트랜잭션은 요청과 응답 메시지로 구성되어 있다.

제목 그대로 개관이다. 정말 갼락하게 무엇이 있고 작동을 거시적으로 바라보는 것이다.
큰틀을 인지하고 미시적인 것들을 보면 시너지가 더 높기 때문에 큰틀을 한번 쫙 훓어 보자..

Method 는 2부에서 …..