목차

    돌아가기

    진보 안하는 HTTP

    HTTP/0.9

    - HTTP가 등장한 때는 1990년인데, 이 당시 HTTP가 정식 사양서는 아니었습니다. 이 당시 등장한 HTTP는 1.0 이전이라는 의미에서 HTTP/0.9로 불리고 있습니다.

     

    HTTP/1.0

    - HTTP가 정식 사양으로 공개된 것은 1996년 5월이었습니다. 이 때 HTTP/1.0으로 RFC1945가 발행되었습니다. 초기의 사양이지만 현재에도 아직 많은 서버상에서 가동되고 있습니다.

     

    HTTP/1.1

    - 1997년 1월에 공개된 HTTP/1.1 버전이 현재 가장 많이 사용되는 버전입니다. 

     

    웹 문서 전송 프로토콜로서 등장한 HTTP는 거의 버전 업이 되지 않았습니다. 현재 차세대 HTTP/2.0이 책정되어 있지만 널리 사용되기까지는 아직 시간이 걸릴 것 입니다.
    HTTP가 등장할 당시 텍스트를 전송할 수단이었지만 프로토콜 자체가 워낙 심플해서 여러 가지 응용 방법을 고려해 기능을 계속 추가하였습니다.

    네트워크의 기본은 TCP/IP

    HTTP 를 이해하기 위해선 TCP/IP 프로토콜에 대해 어느 정도 알고 있어야 한다. 인터넷을 포함한 일반적으로 사용하고 있는 네트워크는 TCP/IP 라는 프로토콜에서 움직이고 있습니다. HTTP는 그 중 하나입니다.

    컴퓨터와 네트워크 기기가 상호간에 통신하기 위해서는 서로 같은 방법으로 통신하지 않으면 안됩니다. 따라서 규칙이 필요한데 그것을 프로토콜이라고 부릅니다.

    프로토콜에는 여러가지가 있고 그 중 인터넷과 관련된 프로토콜을 모은 것을 TCP/IP라고 부릅니다. TCP와 IP 프로토콜을 가르켜 TCP/IP라고 부르기도 하지만, IP 프로토콜을 사용한 통신에서 사용되고 있는 프로토콜을 총칭해서 TCP/IP라는 이름이 사용되고 있습니다.

     

    계층으로 관리하는 TCP/IP

    TCP/IP 4 Layer 설명
    TCP/IP가 계층화된 것은 메리트가 있습니다.
    예를들면, 인터넷이 하나의 프로토콜 되어 있다면 어디선가 사양이 변경된다면 전체를 바꿔야하지만, 계층화되어 있으면 사양이 변경되었을 때 전체를 바꾸지 않아도 되고 부분만 변경되면 된다.
    애플리케이션(응용) 계층 응용 계층은 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정하고 있습니다. ex) FTP, DNS 등도 애플리케이션의 한 가지입니다. HTTP도 이 계층에 포함됩니다.
    전송 계층 트랜스포트(전송) 계층은 애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공합니다.
    트랜스포트 계층에서는 서로 다른 성질을 가진 TCP와 UDP 두 가지 프로토콜이 있습니다.
    인터넷(네트워크) 계층 네트워크 계층은 네트워크 상에서 패킷의 이동을 다룹니다. 패킷이란 전송하는 데이터의 최소 단위입니다. 이 계층에서는 어떠한 경로(이른바 절차)을 거쳐 상대의 컴퓨터까지 패킷을 보낼지를 결정합니다.
    인터넷의 경우라면 상대 컴퓨터에 도달하는 동안에 여러 대의 컴퓨터랑 네트워크 기기를 거쳐서 상대방에게 배송 됩니다. 그러한 여러가지 선택지 중 하나의 길을 결정하는 것이 네트워크 계층의 역할이다.
    네트워크(링크, 데이터 링크) 엑세스 네트워크에 접속하는 하드웨어적인 면을 다룹니다. 하드웨어적 측면은 모두 링크 계층의 역할입니다.
    TCP/IP 통신의 흐름 설명
    송신하는 측은 애플리케션 계층에서부터 top-down하고 수신하는측은 bottom-up한다. 
    1) 송신측 클라이언트의 애플리케이션 계층(HTTP)에서 어느 웹 페이지를 보고 싶다라는 HTTP 리퀘스트를 지시
    2) 트랜스포트 계층(TCP)에서는 애플리케이션 계층에서 받은 데이터 (HTTP 메시지)를 통신하기 쉽게 조각내어 안내포트와 포트번호를 붙여 네트워크 계층에 전달
    3) 네트워크 계층(IP)에서는 수신지 MAC 주소를 추가해서 링크 계층에 전달

    HTTP와 관계가 깊은 프로토콜은 IP/TCP/DNS

    배송을 담당하는 IP

    IP(Internet Protocol)는 계층으로 말하자면 네트워크 계층에 해당된다.  'IP'와 'IP주소'를 혼동하는사람이 있는데 'IP'는 프로토콜의 명칭이다. IP의 역할은 개개의 패킷을 상대방에게 전달하는 것이다. 상대방에게 전달하기까지 여러 가지 요소가 필요하다. 그 중에서도 IP주소와 MAC주소라는 요소가 중요하다.

    IP주소와 MAC주소는?
    IP주소는 각 노드에 부여된 주소를 가르킨다. MAC주소는 각 네트워크 카드에 할당된 고유의 주소이다. IP주소와 MAC주소는 결부된다. IP주소는 변경가능하지만, MAC주소는 기본적으로 변경 불가다.

    통신은 ARP를 이용하여 MAC주소에서 한다.

    ip통신은 mac주소에 의존해서 통신을한다. ARP는 주소를 해결하기 위한 프로토콜이며 수신지의 IP주소를 바탕으로 MAC주소를 조사할 수 있다. 

    그 누구도  인터넷 전체를 파악하고 있지는 않다.

    ARP 예시 설명
    목적지 까지 라우터를 통해 찾아가는 송신측(ARP)

    위 그림과 같이 목적지까지 중계를 하는 도중에 컴퓨터와 라우터 등의 네트워크 기기는 목적지에 도착하기 전까지 대략적인 목적지만을 알고 있다. 이 시스템을 라우팅이라고 부르는데 택배 배송과 흡사합니다. 화물을 보내는 사람은 택배 집배소 등에 화물을 가지고 가면 택배를 보낼 수 있는 것만 알고 있으며, 집배소는 화물을 보내는 곳을 보고 어느 지역의 집배소에 보내면 되는지만 알고 있습니다. 

    신뢰성을 담당하는 TCP

    TCP 계층은 트랜스포트 계층에 해당한다. 신뢰성 있는 바이트 스트림 서비스를 제공한다. 

    바이트 스트림

    용량이 큰 데이터를 보내기 쉽게 TCp 세그먼트라고 불리는 단위 패킷으로 작게 분해하여 관리하는 것을 말한다.

    신뢰성 있는 서비스

    상대방에게 보내는 서비스를 의미한다. 상대에게 확실하게 데이터를 보내기 위해서 TCP는 "쓰리웨이 핸드쉐이킹(three way handshaking)이라는 방법을 사용하고 있다. 

    쓰리웨이 핸드쉐이킹(three way handshaking)
    송신측에서는 최초 SYN 플래그로 상대에게 접속함과 동시에 패킷을 보내고, 수신측에서는 SYN/ACK 플래그로 송신측에 접속함과 동시에 패킷을 수신한 사실을 전달한다. 마지막으로 송신측이 'ACK' 플래그를 보내 패킷 교환이 완료됨을 전한다. 만약 중간에 끊어지면 tcp는 그와 동시에 같은 수순으로 패킷을 재전송한다.

    이름 해결을 담당하는 DNS

    DNS(Dmain Name System)는 HTTP와 같이 응용 계층 시스템에서 도메인 이름과 IP주소 이름 확인을 제공합니다. 컴퓨터는 IP주소와는 별도로 호스트 이름과 도메인 이름을 붙일 수 있습니다. 컴퓨터는 IP주소와는 별도로 호스트 이름과 도메인 이름을 붙일 수 있습니다. DNS는 도메인명에서 IP주소를 조사하거나 반대로 IP주소로부터 도메인명을 조사하는 서비스를 제공하고 있습니다. 

     

     

     

     

    전체 흐름도

     

     

     

     

     

     

     

     

     

     

     

     

    'Back-end > NetWork (HTTP)' 카테고리의 다른 글

    [HTTP] 그림으로 배우는 Http NetWork Basic  (0) 2022.01.17
    강좌명 기한 기한 완료여부
    1강 웹과 네트워크의 기본에 대해 알아보자 3/25(금) OK
    2강 간단한 프로토콜 HTTP    
    3강 HTTP 정보는 HTTP 메시지에 있다    
    4강 결과를 전달하는 HTTP 상태 코드    
    5강 HTTP와 연계하는 웹 서버    
    6강 HTTP 헤더    
    7강 웹을 안전하게 하는 HTTPS    
    8강 누가 엑세스하고 있는지를 확인하는 인증    
    9강 HTTP에 기능을 추가한 프로토콜    
    10강 웹 콘텐츠에서 사용하는 기술    
    11강 웹 공격 기술    

    'Back-end > NetWork (HTTP)' 카테고리의 다른 글

    웹과 네트워크의 기본에 대해 알아보자  (0) 2022.01.19

    + Recent posts