컴퓨터 공학

👉 [네트워크] HTTP 는 소켓 통신이에욧 !!!

bitcodic 2020. 9. 24. 23:41

HTTP 에 대해서 구글링하면 무수히 많이 나오는 내용

 

★☆HTTP 통신 vs 소켓 통신 차이점★☆

 

 

오.. 제발

결론만 말하면 HTTP 통신은 소켓 통신이다.

 

 

 

" 1990년대 초에 설계된 HTTP는 거듭하여 진화해온 확장 가능한 프로토콜입니다. HTTP는 애플리케이션 계층의 프로토콜로, 신뢰 가능한 전송 프로토콜이라면 이론상으로는 무엇이든 사용할 수 있으나 TCP 혹은 암호화된 TCP 연결 TLS를 통해 전송됩니다. "

 

" 연결은 전송 계층에서 제어되므로 근본적으로 HTTP 영역 밖입니다. HTTP는 연결될 수 있도록 하는 근본적인 전송 프로토콜을 요구하지 않습니다; 다만 그저 신뢰할 수 있거나 메시지 손실이 없는(최소한의 오류는 표시) 연결을 요구할 뿐입니다. 인터넷 상의 가장 일반적인 두 개의 전송 프로토콜 중에서 TCP는 신뢰할 수 있으며 UDP는 그렇지 않습니다. 그러므로 HTTP는 연결이 필수는 아니지만 연결 기반인 TCP 표준에 의존합니다."

 

출처 : developer.mozilla.org/ko/docs/Web/HTTP/Overview

 

HTTP는 TCP에 의존하여 만들어졌다.(= 상위 레이어에 만들어졌다.)

 

TCP/IP 레이어 위에 HTTP 레이어가 존재

 

그럼 Socket 이란 무엇이냐?

 

What Is a Socket?

Normally, a server runs on a specific computer and has a socket that is bound to a specific port number. The server just waits, listening to the socket for a client to make a connection request.

 일반적으로, 서버는 특정 컴퓨터 위에서 돌아가고 특정 포트넘버에 할당된 소켓을 갖는다. 이 서버는 클라이언트가 커넥션 요청을 만들기 위한 소켓을 리스닝하며 기다립니다. (후략)

 

 

On the client side, if the connection is accepted, a socket is successfully created and the client can use the socket to communicate with the server.

 클라이언트 쪽에서, 커넥션이 성립된 경우, 소켓이 성공적으로 생성되며 클라이언트는 소켓을 서버와 상호작용하기 위해 사용할 수 있습니다.

 

Definition: 

 A socket is one endpoint of a two-way communication link between two programs running on the network. A socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent to. An endpoint is a combination of an IP address and a port number.

 소켓이란 네트워크 위에서 돌아가는 두 프로그램 간의 양방향 통신링크의 엔드포인트입니다. 소켓은 포트 넘버를 할당받아 TCP 레이어가 데이터의 목적지인 애플리케이션을 식별하도록 합니다. 엔드포인트는 IP 주소와 포트넘버의 조합입니다.

 

출처 : docs.oracle.com/javase/tutorial/networking/sockets/definition.html

 

 

즉 소켓은 엔드포인트. 즉 IP와 포트 넘버를 활용하여 만들어진 통신의 양끝단입니다. 우리가 보통 웹서버를 만들때 80포트를 이용해서 만드는데, 이때 쓰는 엔드포인트도 IP + 포트 의 조합입니다. 그리고 소켓 통신은 소켓을 활용한 통신 방식인거죠.

 

근데 HTTP 란 TCP 위에서 만들어집니다. 즉 소켓을 양끝단으로 하는 TCP 레이어 위에 존재하는 프로토콜입니다.

 

HTTP가 TCP 위에 만들어졌으니, 즉 HTTP 또한 소켓 통신을 활용한 방식이라고 볼 수 있습니다!

 

그럼 20000

 

내 모습