Application (응용계층) : 실제 라인 메신저로 메세지를 보내는 과정처럼 애플리케이션을 사용하는 과정이 해당하는 계층
Presentation (표현계층) : 데이터의 형식을 정의하고 인코딩, 디코딩 기능을 담당하는 계층
Session (세션계층) : 응용 프로그램간의 접속을 설정하고 유지하며 통신관리와 동기화를 담당한다. 로그인이 이에 해당된다
Transport (전송계층) : 메세지의 전송을 담당하며 흐름제어나 오류복구를 통해 메세지가 안전하게 전달될 수 있도록 한다.
Network (네트워크 계층) : 데이터를 패킷 단위로 분할해서 전송하며 전송 과정에서 최적의 경로를 선택하는 역할을 담당한다. 이것을 라우팅기능이라고 한다.
DataLink (데이터링크 계층) : MAC주소를 사용하여 신뢰성있는 정보를 전송하기 위한 역할을 수행한다.( 오류제어, 흐름제어, 순서제어 등)
Physical (물리계층) : 물리적인 단말을 통해 실제 데이터를 전송한다.
Application, Presentation, Session : Data
Transport : Segment
Network : Packet
DataLink : Frame
Physical : bits
HTTP란 HyperText Transfer Protocol의 약자로 초기에는 HTML을 전달하기 위해 사용했던 프로토콜이지만 최근에는 PlainText나 XML, JSON등 다양한 형태의 정보도 전송하는 응용계층의 프로토콜이다.
HTTP에는 1.0에서 사용하는 방식인 Non-Persistent 방식과 Persistent방식이 존재한다. 기본적으로 HTTP는 클라이언트 - 서버 구조로 데이터를 요청하고 전달한다.
HTTP는 기본적으로 TCP를 사용한다. 이 때 클라이언트가 요청한 정보의 전달 이후 연결을 바로 끊어버리는 방식이 HTTP1.0에서 사용하는 방식이다. 따라서 추가로 요청할 정보가 있으면 다시 소켓연결을 시도해야 한다.
HTTP1.1에서부터 사용하는 Persistent방식은 서버가 응답을 보낸후 연결을 바로 끊지 않고 열어두는 방식이다. Non persistent 방식은 한번 요청을 보내고 응답받기 위해 TCP 연결이 필요하기 때문에 TCP 연결(1 RTT) + 요청 및 응답(1 RTT)로 총 2RTT의 시간이 걸리지만 Persistent는 연결이 한번이고 요청을 병렬로 보내기 때문에 훨씬 적은 시간이 든다.
1xx : 조건부 응답으로 요청을 받았으니 이어서 작업을 계속하라는 의미이다.
2xx : 요청이 성공적으로 처리되었다는 의미이다.
3xx : Redirection Message로 요청을 완료하기 위해 추가적인 작업이 필요하다는 의미이다. 예를들어 naver.com이 아닌 naver.co.kr을 입력했을때 naver.com으로 이동되는 상황이다.
4xx : 클라이언트 측에서 문제가 있는 상황이다.
5xx : 서버측에서 문제가 있는 상황이다.