-
HTTP를 이해하자1개발/NETWORK 2018. 1. 8. 23:17
웹은 어떤 식으로 동작할까?
이 물음을 해결하기 위해 도서관에서 [그림으로 배우는 HTTP&Network Basic-우에노 센(영진닷컴)]을 빌려서 공부하기 시작했다.
그리고.. 이 포스팅은 해당 책을 정리하기 위함이다.
HTTP(Hyper Text Transfer Protocol)
- 웹에서 클라이언트와 서버까지의 일련의 흐름을 결정 및 통신을 위한 약속.
WWW를 구성하는 기술
1) HTML(Hyper Text Markup Language) - SGML을 베이스로 한 문서 기술언어
2) HTTP - 문서 전송 프로토콜
3) URL(Uniform Resource Locator) - 문서의 주소를 지정하는 방법
#HTTP를 이해하기 위해 TCP/IP 프로토콜에 대한 기본 지식이 필요하다. 추후 다른 서적을 통해 TCP/IP에 대해 자세히 포스팅을 해보자.
프로토콜
- 컴퓨터와 네트워키 기기가 통신하기 위해서는 서로 같은 방법으로 통신해야 한다.
즉, 규칙을 필요로하는 데.. 서로 다른 하드웨어와 소프트웨어의 통신을 위한 규칙을 바로 프로토콜이라고 한다.
TCP/IP 프로토콜
1) 인터넷과 관련된 프로토콜을 모은 것
2) 계층 **
- 계층화된 이유? 사양이 변경되었을 때, 해당 계층만 바꾸면 되며, 각 계층 내부만 고려하려 자유롭게 설계할 수 있다.
[ TCP/IP 계층 ]애플리케이션 계층
사용자에게 제공되는 애플리케이션에서 사용하는 통신의 움 직임을 결정한다. ex) FTP, DNS, HTTP
트랜스포트 계층
애플리케이션 계층에 네트워크로 접속되어 있는 컴퓨터 사이의 데이터 흐름을 제공한다. ex) TCP, UDP
네트워크 계층
인터넷계층, 네트워크 상에서 패킷(전송 데이터의 최소 단위)의 이동을 다룬다. 어떤 경로를 거쳐서 패킷을 보낼지 결정한다.
링크 계층
데이터 링크 계층, 하드웨어를 다룬다. 디바이스 드라이버, 네트워크 인터페이스 카드, 케이블을 포함한다.
3) 송신할 때는 애플리케이션-> 링크계층으로, 수신할 때는 링크계층-> 애플리케이션 계층으로
- 송신측 클라이언트가 애플리케이션 계층(HTTP)에서 HTTP 리퀘스트를 요청하면, 트랜스포트 계층(TCP)에서 HTTP 메시지를 조각내고 안내 번호와 포트 번호를 붙여 네트워크 계층(IP)에 전달한다. IP에서는 수신지의 MAC 주소를 추가해 링크계층에 전송한다.
4) 각 계층을 거칠 때는 반드시 해당 계층에 필요한 정보인 헤더가 추가된다. 이를 캡슐화라고 한다.
HTTP와 IP/TCP/DNS
1) IP(Internet Protocol)
- 네트워크 계층
- 상대방에게 패킷을 전달하는 역할을 담당한다.
어떻게 전달할까? IP주소와 MAC 주소를 이용한다.
IP 주소 : 각 노드에 부여된 주소(변경O)
MAC 주소 : 각 네트워크 카드의 고유 주소(변경X)
- ARP(Address Resolution Protocol) : IP 통신 시 사용된다. 수신지의 IP 주소를 바탕으로 MAC 주소를 알아내는 프로토콜이다.
- IP 통신 시스템은 라우팅이라고 불린다. 이는, 중계되는 네트워크 기기는 대략적인 목적지만 알고 있는 것과 비슷하다.
즉, A네트워크 기기는 목적지인 C네트워크 기기의 위치는 모르지만, 중계되는 기기인 B네트워크 기기의 IP주소는 안다.
2) TCP(Transfer Control Protocol)
- 트랜스포트 계층
- 신뢰성 있는 바이트 스트림 서비스를 제공
바이트스트림이란? 큰 데이터를 보내기 쉽게 패킷(TCP 세그먼트)으로 분해 관리하는 것
- 대용량의 데이터를 분해해서 상대에게 보내고 정확히 도착했는 지 확인하는 역할을 담당한다.
- 신뢰성 있는 통신을 위해 쓰리웨이 핸드셰이킹 방법을 사용.(SYN과 ACK 라는 TCP 플래그 사용)
3) DNS(Domain Name System)
- 응용 계층
- 도메인 명 <-> IP 주소