기타/HTTP & 인증체계

[HTTP] HTTP란 무엇인가? HTTP 알아보기 1

just-e 2021. 1. 12. 23:49

[그림 1] http

HTTP 시리즈

  1. HTTP 알아보기1 - HTTP 개념
  2. HTTP 알아보기2 - URI & URL

 

 

1. HTTP란 무엇인가?

[그림 2] Request & Response: HTTP

  • 요청(Request) 응답(Response)이 한 쌍을 이루어 통신을 합니다.
    ex) 브라우저에 www.tistory.com을 입력하여 어딘가에 송신후 어딘가에서 응답이 돌아오면 웹 페이지 표시됨.
      => 이런 일련희 흐름을 HTTP(HyperText Transfer Protocol)라고 불리는 프로토콜입니다.
  • 프로토콜은 `약속`을 의미합니다.
    HTTP라는 약속을 사용한 통신입니다.

 

2. HTTP 등장배경

등장배경을 알게 되면 HTTP의 목적을 알 수 있기 떄문에 쉽게 이해할 수 있습니다.

  • 웹은 지식 공유를 지원하기 위해서 제안.

     -> 1989년 3월 HTTP가 탄생. CERN(유럽 입자 물리학 연구소)의 팀 버너스 리 박사는 멀리 떨어져 있는 동안
          연구자와 지식을 공유할 수 있도록 시스템을 고안하였습니다.
          이때 최초로 고안한 것이 여러 문서를 연결할 수 있도록 하이퍼텍스트(HyperText)를 통한 
          WWW(World Wide Web, 월드 와이드 웹)의 기본 개념이 되었습니다.

  • HTTP의 발전.

     - HTTP/0.9

        : 정식 사양서는 아니지만, 1990년에 등장.
          당시 HTTP 1.0 이전이라는 의미에서 0.9로 불림.

     - HTTP/1.0
        : 정식 사양으로 1996년 5월에 등장.
          이 떄 HTTP 1.0으로 RFC1945 발행.

     - HTTP/1.1
        : 1997년 1월에 등장.
          당시 RFC2068 사양이였지만, 개정판으로 발행된 RFC2616이 최신버전.

! WWW를 구성하는 기술
  1. 문서 기술 언어인 HTML(HyperText Markup Text).
  2. 문서 전송 프로토콜인 HTTP(HyperText Transfet Protocol).
  3. 문서의 주소를 지정하는 URL(Uniform Resource Locator).

 

3. TCP/IP

HTTP를 이해하기 위해서는 TCP/IP 프로토콜에 대해 어느정도 알고 있는것이 좋습니다.

인터넷을 포함하여 일반적으로 사용하고 있는 네트워크는 TCP/IP라는 프로토콜에서 움직이고 있습니다.

HTTP는 그 중 하나입니다.

 

  • TCP/IP는 프로토콜의 집합.

    - 상호간에 통신하려면 서로 같은 방법으로 통신해야합니다..
      ex) 어떻게 상대를 찾지? 어떻게 상대랑 이야기 할 수 있을까? 어떤 언어를 사용하지? 어떻게 이야기를 그만하지?
       : 서로 다른 하드웨어와 운영체제 등, 서로 통신하려면 모든 요소에 규칙이 필요합니다.
         이러한 규칙을 프로토콜이라고 부릅니다.
  • TCP/IP의 중요한 개념 중 하나인 계층(Layer).

     - TCP/IP는 4계층으로 나뉨.
        : `애플리케이션 계층`, `트랜스포트 계층` 데이터링크 계층`, `링크 계층`

     - 왜 계층화일까?
        : 계층화되어 있다면 사양이 변경된 해당 계층만 바꾸면 되기 때문입니다.
          각 계층은 계층 연결 부분만 정해져 있어서, 각 계층의 내부는 자유롭게 설계 가능합니다.

     - 자유로운 설계?
        : 자신이 담당한 부분(ex, `애플리케이션 계층`)만 고려하면 되기 떄문입니다.

  • TPC/IP Layer 구조

[그림 3] TCP/IP 프로토콜 Layer & OSI 7 Layer

                    ①: 응용 프로세서 간의 정보 교환합니다.

                    ②: IP를 통해 전달되는 패킷의 오류 검사 및 재전송 요구 등의 제어를 담당합니다.

                    ③: 전송 계층에서 받은 패킷을 목적지에 전달합니다.

                    ④: 물리적인 네트워크입니다.

 

  • TCP/IP 각 계층의 역할

       - `애플리케이션 계층(응용 계층)`
           : 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정.
             여러가지의 공통 애플리케이션(FTP, DNS, HTTP 등이 포함)이 준비.
       - `트랜스포트 계층(전송계층)`
           : 애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름 제공.
             ! TCP와 UDP

TCP(Transmission Control Protocol): 연결형 프로토콜(연결 후 통신), 통신방식( 1:1 ) 
UDP(User Data Protocol): 비연결형 프로토콜(연결 없이 통신), 통신방식( 1:1, 1:N, N:N )

       - `네트워크 계층`
           : 네트워크 상에서 *패킷의 이동을 다룸.
             어떠한 경로(절차)를 거쳐 상대방의 컴퓨터까지 패킷을 보낼지 결정.
             ! 선택지 중에서 하나의 길을 결정하는 것.

패킷: 전송하는 데이터의 최소 단위

       - `링크 계층(데이터링크 계층)`
           : 네트워크에 접속하는 하드웨어적인 면을 다르기 때문에, 
             디바이스 드라이버랑 NIC(네트워크 인터페이스 카드)을 포함.
             하드웨어적 측면은 모두 링크 계층.

  • TCP/IP 통신의 흐름
     - TCP/IP 통신을 할 때 계층을 순서대로 거쳐 상대와 통신.
     - 각 계층을 거칠 때마다, 계층 헤더 추가 및 삭제되는데 이렇게 감싸는 것을 캡슐화라고 한다.

 

[그림 4] TCP/IP 통신 흐름

 

4. 전체 통신 흐름

[그림 5] 전체 통신 흐름

DNS가 무엇인지 기억이 안난다면 읽어주세용! -> DNS와 그 외..

 

 

 

 

 

 

 

참고 자료

IETF RFC2616 - Hypertext Transfer Protocol

[도서] HTTP 완벽가이드

[도서] 그림으로 배우는 HTTP & Network Basic