아무나개발하자

HTTP의 핵심 정리 본문

HTTP

HTTP의 핵심 정리

개발천재나천재 2022. 12. 12. 15:34

HTTP의 기본 용어에 대해 알고가자

1. 인터넷 통신

2. IP

3. TCP/ UDP

4. PORT

5. DNS

 

 

 

1. 인터넷 통신망

복잡한 인터넷 망은 노드(컴퓨터)를 통해 통신을 한다. -> 컴퓨터를 통해 어떻게 통신할 수 있을까???

-> 답 : IP를 통해 할 수 있다

- 답을 저렇게 해놓으면 많은 이견이 달릴 수도 있을것 같다. 나도 안다 자세하게는 나중에 설명하겠다.

 

 

 

2. IP

간단하게만 얘기해서 송신지 IP와 목적지 IP를 통해서 패킷을 전달할 수 있다.

IP 패킷은 이러한 형식으로 생겼다. 여기서 중요한것은 패킷에 송신지 IP와 수신지 IP가 모두 있다는 것이다. 이렇게 함으로써 양방향 통신이 가능하게 하였다.

하지만 IP 프로토콜만으로는 한계가 있다.

 

 

 

IP 프로토콜의 한계

- IP 프로토콜은 너무 좋은 아이디어다. 하지만 한계를 가지고 있다.

1. 비연결성 (패킷을 받을 대상이 없거나, 서비스 불능 상태여도 패킷을 전송한다)

2. 비신뢰성 (패킷의 순서와 도착을 보장하지 않는다)

3. 프로그램을 구분하지 못한다. (IP만으로는 프로그램을 구분하지 못한다)

 

 

 

3. TCP/UDP의 등장

이건 기본 상식이다. 외워라!

자세하게 얘기하면 User Level, Kernel Level, Device로 나눠져서 application영역에서 만들어진 HTTP, FTP는 Socket 라이브러리를 통해 os 레벨로의 데이터 전송이 가능하다. 그리고 tcp/ip를 거쳐 만들어진 패킷은 NIC를 통해 인터넷으로 나가게된다.

 

 

 

프로토콜 계층 설명

 

TCP/IP 패킷의 정보

- TCP를 통해 출발지와 목적지 IP뿐만 아니라 PORT정보도 얻게되어 프로그램(프로세스)도 구분이 가능하다.

- TCP의 또 다른 특징은 연결 지향 (3 Way Hand-Shake), 논리적 연결을 통해 데이터 전달을 보증한다.

- 순서도 보장한다.

 

 

 

 

 

 

 

 

 

 

 

PORT

- port를 통해 같은 IP내의 프로세스를 구분할 수 있게되었다.

 

- 그러면 이러한 의문이 생길수 있을것이다. 웹 브라우저 두개를 동시에 사용하면 어떻게 브라우저끼리 구분할 수 있지??

답은 간단하다. 

예를 들어 크롬사파리 두개를 이용해 웹 서핑을 한다고 가정하자, 그리고 브라우저를 동작하고 있는 내 컴퓨터의 IP는 100.100.100.1이라고 할때, 어떻게 통신할 수 있을까?

크롬에서 검색을 했을때 HTTP 요청 메시지가 만들어지고 os 계층을 거쳐서 패킷이 만들어 진다. 여기서 패킷을 만들때 PORT번호를 랜덤하고 유니크하게 부여 받는다. 그래서 사파리로 검색했을때도 HTTP 요청 메시지가 만들어지고 os 계층을 거쳐서 패킷이 만들어 지는데 PORT 번호가 랜덤하고 유니크하게 만들어져서 구분할 수 있는것이다.

 

 

 

DNS

- 간단하게 설명하면 도메인 명을 IP 주소로 변환해주는 친구이다.

 

출처 : https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

'HTTP' 카테고리의 다른 글

HTTP의 모든것  (0) 2022.12.20
웹 브라우저 요청 흐름정리  (1) 2022.12.13
인터넷 네트워크  (0) 2022.07.13