[Network] HTTP 네트워크 기본 개념 정리(1)

2018. 3. 5. 16:57Computer Network

HTTP 네트워크 기본 개념 정리(1)


□ HTTP

- HTTP/0.9

HTTP가 등장한 때는 1990년 → 이 당시 HTTP가 정식 사양서는 아니었음

1.0 이전이라는 의미에서 HTTP/0.9로 불리고 있다.


- HTTP/1.0

1996년 5월 공개, RFC1945 발행, 현재에도 아직 많은 서버상에서 현역으로 가동되고 있는 프로토콜 사양


- HTTP/1.1

1997년 1월 공개, RFC2068(현재는 RFC2616이 최신)


- HTTP/2.0

차세대를 담당할 프로토콜



□ TCP/IP 관련 개념

- 프로토콜 : 서로 다른 하드웨어와 운영체제 등을 가지고 서로 통신을 하기 위해 모든 요소에 필요한 규칙

 · ex) 케이블 규격, IP주소 지정 방법, 떨어진 상대를 찾기 위한 방법과 그 곳에 도달하는 순서, 웹을 표시하기 위한 순서 등


- TCP/IP : 인터넷과 관련된 프로토콜들을 모은 것


- 계층(Layer) : '애플리케이션 계층', '트랜스포트 계층', '데이터링크 계층', '링크 계층'으로 나누어 놓은 것


- 계층(Layer)화의 장점

1) 인터넷이 어디선가 사양이 변경되었을 때, 변경된 해당 계층만 바꾸면 된다.

2) 설계가 편하다.


· 애플리케이션 계층

 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정

   ex) FTP, DNS, HTTP 등


· 트랜스포트 계층

 애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공

   ex) TCP, UDP


· 네트워크 계층(혹은 인터넷 계층)

 네트워크 상에서 패킷의 이동을 다루는 계층

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

 패킷의 경로를 결정 or 인터넷의 경우 상대 컴퓨터에 도달하는 동안에 여러 대의 컴퓨터랑 네트워크 기기를 거쳐서 상대방에게 배송될 경로 결정


· 링크 계층(혹은 데이터 링크 계층, 네트워크 인터페이스 계층)

 네트워크에 접속하는 하드웨어적인 면을 다루는 계층

 디바이스 드라이버, 네트워크 인터페이스 카드(NIC), 케이블(커넥트 등을 포함한 여러 가지 전송 매체) 등 포함



□ TCP/IP 통신 (HTTP 예시)

- 계층을 순서대로 거쳐 상대와 통신

1) 송신측 클라이언트의 애플리케이션 계층(HTTP)에서 어느 웹 페이지를 보고 싶다라는 HTTP 리퀘스트 지시

2) 트랜스포트 계층(TCP)에서는 애플리케이션 계층에서 받은 데이터(HTTP 메시지)를 통신하기 쉽게 조각내어 안내 번호와 포트 번호를 붙여 네트워크 계층에 전달

3) 네트워크 계층(IP)에서는 수신지 MAC 주소를 추가해서 링크 계층에 전달

4) 수신측 서버는 링크 계층에서 데이터를 받아들여 순서대로 위의 계층에 전달하여 애플리케이션 계층까지 도달


- 캡슐화 : 각 계층을 거칠 때마다 해당 계층에 필요한 정보를 추가해서 정보를 감싸는 것



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

- IP (Internet Protocol)

· 네트워크 층에 해당

· IP의 역할은 개개의 패킷을 상대방에게 전달하는 것 → IP 주소와 MAC 주소(Media Access Control Address) 필요

· IP : 프로토콜의 명칭

· IP 주소 : 각 노드에 부여된 주소

· MAC 주소 : 각 네트워크 카드에 할당된 고유의 주소

· IP 통신은 MAC 주소에 의존해서 통신 → 다음으로 중계할 곳의 MAC 주소를 사용 → ARP(Address Resolution Protocol : IP 주소를 바탕으로 MAC 주소를 조사) 사용


- TCP (Transfer Control Protocol)

· 신뢰성 있는 바이트 스트림 서비스 제공

· 바이트 스트림 서비스 : 용량이 큰 데이터를 보내기 쉽게 TCP 세그먼트라고 불리는 단위 패킷으로 작게 분해하여 관리

· 신뢰성 있는 서비스 : 상대방에게 보내는 서비스(정확하게 도착했는지 확인)

· 쓰리웨이 핸드셰이킹(three way handshaking) : 패킷을 보내고 나서 바로 끝내는 것이 아니라, 보내졌는지 여부를 상대에게 확인 (SYN, ACK)

1) 송신측에서는 최초 'SYN' 플래그로 상대에게 접속함과 동시에 패킷 전송

2) 수신측에서는 'SYN/ACK' 플래그로 송신측에 접속함과 동시에 패킷을 수신한 사실 알림

3) 마지막으로 송신측에서 'ACK' 플래그를 보내 피킷 교환이 완료되었음을 전함


- DNS (Domain Name System)

· HTTP와 같이 응용 계층 시스템에서 도메인 이름과 IP 주소 이름 확인을 제공

· 숫자를 나열하는 IP 주소를 지정하는 것보다 영어나 숫자 등으로 표기해 컴퓨터의 이름을 지정하는 것이 인간에게 친숙하지만, 컴퓨터에게는 친숙하지 않다.

· 도메인명 ↔ IP 주소 조사하는 서비스 제공



□ URI와 URL

- URI (Uniform Resource Identifiers)

· Uniform : 서식을 결정하는 것 ( "http:"  "ftp" 등)

· Resource : '식별 가능한 모든 것', 도큐먼트 파일뿐만 아니라, 이미지와 서비스(예를 들면, 오늘의 일기 예보) 등

· Identifier : 식별 가능한 것을 참조하는 오브젝트


- URI와 URL의 차이점

· URI는 리소스를 식별하기 위해 문자열 전반을 나타내는데 비해, URL은 리소스의 장소(네트워크 상의 위치)를 나타낸다.

· URL은 URI의 서브셋

'Computer Network' 카테고리의 다른 글

[Network] HTTP vs HTTPs  (0) 2018.07.09
[Network] TCP vs UDP  (0) 2018.07.09
[Network] (TCP) 3-way-handshake & 4-way-handshake  (0) 2018.07.09
[Network] GET vs POST 방식  (0) 2018.07.09
[Network] HTTP 네트워크 기본 개념 정리(2)  (0) 2018.03.07