웹과 HTTP는 모두 인터넷 망 기반으로 동작하고 개발자는 HTTP기반으로 개발하므로 HTTP지식을 모르면 안된다는 것이다.
클라이언트와 서버의 관계가 케이블로 연결될 수 만 있다면 http가 필요없다.
하지만 물리적으로 가능한 범위에서만 통신하지는 않는다. 그렇다면 인터넷을 사용해야만 되는데, 이 클라이언트와 서버사이에는 수많은 중간 노드를 거쳐 연결되게 된다.
이 중간 노드를 거치는 사이에는 규칙이 있는데 그것이 바로 인터넷 프로토콜, 즉 IP이다.
그 규칙은 IP주소를 통해서 연결이 가능해진다.
패킷은 IP통신의 데이터 단위인데, 이 패킷으로 메세지를 주고받게 된다.
그러니까 IP패킷은 출발지IP주소와 도착지 IP주소가 담겨진 것이다.
이 IP주소를 보고 목적지 서버에 전달되는데, 반대쪽도 동일하게 IP주소를 보고 메세지를 전달하지만
인터넷망은 복잡하기 때문에 전달 루트가 똑같지는 않다.
하지만 이런IP 방식에는 한계가 있다.
🟣비연결성 : 패킷을 받을 대상이 부재하거나 그 대상서비스가 불능 상태여도 걍 패킷이 전송된다.
존재하지 않는 IP여도 보내지고, 응답이 가능한지 아닌지 관계없이 보내진다는 것이다.
🟣비신뢰성 : 중간에 패킷이 사라지거나 패킷이 순서대로 오지 않을 수 도 있다.
패킷을 거쳐가는 서버 중 하나가 문제가 생기면 패킷도 그대로 사라진다.
또 패킷의 용량이 크면 순서가 뒤바껴 갈 수 도 있따. 예를 들어 hello, World를 각각 보냈는데 world가 먼저 도착하는 그런 불상사이다.
🟣프로그램 구분의 문제 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 두개 이상일때의 문제이다.
하나의 pc로 여러작업을 하는데, 가령 게임 애플리케이션과 음악애플리케이션을 동시에 실행 중이라면 하나의 IP로 어떻게 구분할 것인지에 대한 문제가 생긴다는 것이다.
그래서 이것을 보완한것이 TCP와 UDP이다.
다음 포스팅에 계속 -
🔗출처 강의 : 김영한 / 모든 개발자를 위한 HTTP 웹 기본지식
'CS > HTTP' 카테고리의 다른 글
URI(Uniform Resource Identifier) (0) | 2024.03.16 |
---|---|
TCP와UDP (0) | 2024.03.15 |
GET 과 POST 의 차이점 (0) | 2024.01.12 |