클라이언트는 리소스를 가지고 오기 위해 서버에 요청을 보낸다. 이 일련의 흐름은 웹에서 HTTP 프로토콜로 이루어진다.
1. TCP/IP
- 서로 다른 하드웨어와 OS를 가지고 서로 통신을 하기 위해서 필요한 것이 프로토콜이다.
- 인터넷과 관련된 프로토콜을 모은 것을 TCP/IP라고 한다.
- TCP/IP는 4개의 계층으로 이루어져 있다. (애플리케이션 계층, 트랜스포트 계층, 네트워크 계층, 링크 계층)
- TCP/IP로 통신할 때 계층은 순서대로 거친다. 송신하는 쪽은 위에서 아래로 내려가고(계층 통과할 때마다 헤더 추가), 수신하는 쪽은 아래에서 위로 올라간다(계층 통과할 때마다 헤더 삭제).
2. IP, TCP, DNS
1) IP
- IP는 네트워크 계층에 해당된다. IP의 역할은 개개의 패킷을 상대방에게 전달하는 것이다. 이 때 중요한 것은 IP 주소와 MAC 주소이다.
- ARP 프로토콜을 활용해서 MAC 주소를 알아낸다. ARP Table에 대한 자세한 설명
2) TCP
- 트랜스포트 계층에 해당된다. 신뢰성 있는 바이트 스트림 서비스를 제공한다.
- 바이트 스트림 서비스 = 용량이 큰 데이터를 보내기 쉽게 TCP 세그먼트라 불리는 단위 패킷으로 작게 분해하여 관리하는 것.
- TCP는 대용량의 데이터를 보내기 쉽게 작게 분해하여 상대방에게 보내고, 정확하게 도착했는지 확인하는 역할을 한다.
- 확실하게 데이터를 보내기 위해 TCP는 3-way handshaking을 사용한다.
3) DNS
- DNS는 도메인 이름과 IP 주소 이름을 관리한다.
3. URI와 URL
1) URI
- URL은 URI의 서브셋이다. URI는 리소스를 식별하기 위한 문자열 전반이다. 이제부터는 URI를 URL로 생각해도 지장 없다.
2) URL 포맷