이 부분은 사용자 계층을 말합니다.
데이터를 생성하는 목적으로 사용자에게 인터페이스, 응용프로그램, 네트워크 서비스 등을 제공합니다.
표현 계층에서 만들어진 데이터 타입을 여기서는 사용자에게 보여주는 역할을 합니다.
HTTP는 최상위 계층인 application 계층에 동작합니다. 개념적으로만 봤을 때 HTTP는 TCP/IP 계층 위에 동작하는 거라고 볼 수 있습니다.
HTTP를 까보면 TCP가 나오게 됩니다.
즉, TCP 기반으로 만들어진 프로토콜이 HTTP라는 말입니다.
인터넷 주소창에 'www.google.com' 이라는 도메인 네임을 입력했다고 가정해 봅시다.
그럼 인터넷 창에선 www.google.com에 접속해 서비스를 받기위해 여러가지 포멧 형태가 일어나게 됩니다.
여기서 사용자가 www.google.com을 인터넷 주소창에 치는 모든 행위 작업들을 OSI 7 Layer 중 7계층인 응용계층(Application Layer)이라고 합니다.
여기선 서버에 보낼 데이터와 어떤 프로토콜 방식을 사용할지에 대한 헤더가 붙게 됩니다.
이런 것들을 패킷 이라고 하며, 저희가 인터넷에 주소를 입력한 후 엔터를 누르는 순간, '인터넷 -> 본인 컴퓨터 랜카드' 로 가기 까지 모든계층들을 지나가며 각 계층마다 패킷이 붙게 됩니다.
위 사진을 보시면 'Data' 부터 시작하여 점점 아래로 내려갈 수록 이것 저것 붙는것을 확인할 수 있습니다.
응용 계층에선 어떤 프로토콜로 통신할 지에 대한 헤더가 붙고,
다음 계층인 표현계층(Presentation Layer)에서는 암호화 또는 복호화 과정에 필요한 정보들이 붙습니다.
세션은 연결을 위한, 표현 계층은 에러제어 및 신뢰성 확보 등..... 여러가지 정보들이 패킷에 붙어 나가게 됩니다.
IP 계층에는 출발지 주소와 목적지 주소가 존재하고, TCP 계층에는 출발지 포트, 목적지 포트가 존재합니다. IP가 아파트 주소라면 TCP는 번지, 동 개념이라고 생각하면 편합니다.
TCP: byte Array로 정보를 통신
HTTP: String으로 정보를 통신
예를 들어서 클라이언트로부터 특정 URL로 요청이 들어오면 DNS 서버가 도메인에 매핑되는 IP 주소를 받아옵니다.
TCP 계층에서 HTTP 메시지를 패킷으로 분해합니다.
그리고 IP 계층에서 전송 위치를 확인하고 네트워크를 통하여 전송합니다.
그리고 받는쪽은 위의 과정을 역순으로 진행하여 처리합니다.
소켓도 마찬가지로 TCP 기반으로 나온건데 HTTP와의 차이점은 연결지향 / 동기식 통신이 필요할 때는 소켓 통신을 이용하는게 더 유리하다는 점입니다.