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

2021. 1. 12. 23:49·기타/HTTP & 인증체계

[그림 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의 발전.    : 정식 사양서는 아니지만, 1990년에 등장.
          당시 HTTP 1.0 이전이라는 의미에서 0.9로 불림. - HTTP/1.1
        : 1997년 1월에 등장.
          당시 RFC2068 사양이였지만, 개정판으로 발행된 RFC2616이 최신버전.
  •  - HTTP/1.0
        : 정식 사양으로 1996년 5월에 등장.
          이 떄 HTTP 1.0으로 RFC1945 발행.
  •  - HTTP/0.9
! 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). - 왜 계층화일까?
        : 계층화되어 있다면 사양이 변경된 해당 계층만 바꾸면 되기 때문입니다.
          각 계층은 계층 연결 부분만 정해져 있어서, 각 계층의 내부는 자유롭게 설계 가능합니다.
  •  - 자유로운 설계?
        : 자신이 담당한 부분(ex, `애플리케이션 계층`)만 고려하면 되기 떄문입니다.
  •  - TCP/IP는 4계층으로 나뉨.
        : `애플리케이션 계층`, `트랜스포트 계층` 데이터링크 계층`, `링크 계층`
  • 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

반응형

'기타 > HTTP & 인증체계' 카테고리의 다른 글

[HTTP] HTTP2 알아보기  (0) 2021.01.13
[HTTP] HTTP란 무엇인가? HTTP 알아보기2 - URI & URL  (0) 2021.01.12
[인증체계] OAuth 2.0 정리 with OAuth  (2) 2020.10.12
'기타/HTTP & 인증체계' 카테고리의 다른 글
  • [HTTP] HTTP2 알아보기
  • [HTTP] HTTP란 무엇인가? HTTP 알아보기2 - URI & URL
  • [인증체계] OAuth 2.0 정리 with OAuth
Jo__oD
Jo__oD
[N개의 취미중 1개] Playground
  • Jo__oD
    JUST
    Jo__oD
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • Framework & Library
        • React
        • Next.js
        • Spring & Spring Boot
      • Dev & Lenguage
        • JavaScript
        • JAVA
        • 백엔드 & 프론트엔드 개발
      • Cloud & DevOps
        • OpenStack
      • Knowledge N
        • 운영체제(OS)
        • 네트워크(Network) N
        • 데이터베이스(DB)
        • 자료구조 & 알고리즘
        • 디자인 패턴
      • 운영
        • Linux
        • Windows
        • Docker
      • 기타
        • HTTP & 인증체계
        • Raspberry Pi
      • Error
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    http 개념
    가상 머신 Ubuntu 생성
    OpenStack
    오픈스택을 다루는 기술
    가상 머신
    가상머신
    ip할당 설정
    지식채우기
    가상 머신 생성
    ip자동할당
    raspberry pi
    VMware Ubuntu 생성
    java
    도서
    VMware 생성
    가상 머신 Ubuntu
    네트워크 분할
    가상 머신 서버 생성
    http
    Keystone
  • 최근 댓글

  • 최근 글

  • 160x600
  • hELLO· Designed By정상우.v4.10.3
Jo__oD
[HTTP] HTTP란 무엇인가? HTTP 알아보기 1
상단으로

티스토리툴바