application layer - HTTP

Lee·2023년 2월 19일
0

네트워크

목록 보기
2/2

HTTP(hypertext transfer protocol)

개요

HTTP는 웹의 중심으로 서로 다른 종단 시스템에서 수행되는 client, server 프로세스가 통신하는 데 사용한다.
client가 server에게 웹 페이지를 어떻게 요청하는지, server가 client로 웹 페이지를 어떻게 전송하는지 정의하는 프로토콜

요청/응답 예시

  1. HTTP는 TCP를 전송 프로토콜로 사용
  2. client는 server에 TCP 연결 시작
  3. 연결 성공시 client와 server 프로세스는 socket 인터페이스를 통해 TCP 연결
  4. client가 HTTP 요청 메시지를 소켓 인터페이스로 전송하고 소켓 인터페이스로 HTTP 응답 메시지를 받는다.

계층구조의 장점

client가 메시지를 소켓 인터페스로 보내면 메시지는 TCP에서 관리하게 된다.
따라서 HTTP는 데이터 손실 및 복구에 대해서는 하위 프로토콜에서 처리하기 때문에 걱정할 필요가 없다.

연결 방식

인터넷 애플리케이션에서 client 및 server는 상당한 기간 동안 통신한다.
따라서 애플리케이션의 요구가 주기적 또는 간헐적으로 만들어 질 수 있다.
그러므로 TCP 상에서 개발자는 연결 방식을 선택할 필요가 있다.

지속 연결

  • http의 디폴트 연결 방식
  • TCP 통신 시 각 request/response가 같은 TCP 연결을 통해 보내는 방식

비지속 연결

  • TCP 통신 시 각 request/response가 분리된 TCP 연결을 통해 보내는 방식

process communicate

프로세스

  • host에서 실행 중인 프로그램을 프로세스라 한다.
  • 두 프로세스 간 통신에서 통신을 초기화 하는 프로세스를 client라하고, 세션 실행을 위해 접속을 대기하는 프로세스를 server라 한다.

소켓 통신

프로세스는 소켓을 통해 네트워크에 메시지를 주고 받는다.

  • 소켓: 어플리케이션 프로세스와 트랜스포트 프로토콜 간의 인터페이스

주소화

수신 프로세스를 식별하기 위해 IP address와 port 번호를 사용한다.

  1. IP
    • 호스트 식별
    • network layer에서 다룬다
  2. port
    • 소켓 식별
    • web은 80번 사용
    • transport layer에서 다룬다
profile
발전하고 싶은 백엔드 개발자

0개의 댓글