카테고리작성일2022-04-10태그
concept
web

평소에 자주 사용하지만 정확하게 알지 못했던 개념들에 대해 정리해보는 시간을 가져보자.

용어 정리

  • Connection - 프로그램간의 통신을 목적으로 사용되는 전송 계층의 가상 회로. 물리적으로 연결되어있지는 않지만, 마치 실제로 연결된 것처럼 통신을 할 수 있다.
  • Message - HTTP 통신의 기본 단위. 8개의 비트가 모인 Octet의 배열로 이루어져 있음.
  • Resource - 네트워크 상에서 URI로 식별할 수 있는 데이터나 서비스
  • Entity - Request나 Response에 실려 보내지는 Payload. 헤더와 바디로 구성됨.
  • Representation - Response에 포함된 Entity. Content Negitiation의 대상이기도 함.
  • Content Negotiation - 적절한 Representation을 선택하는 매커니즘.

HTTP

  • 어플리케이션 계층의 프로토콜
  • TCP나 TLS를 통해 전송

프로토콜은 일반적으로 통신 프로토콜을 의미하고, 컴퓨터나 통신 장비 (라우터같은 것들) 사이에서 메시지를 주고 받는 규칙의 체계다.

통신을 위한 다른 프로토콜도 있을까?

Telnet, FTP, SMTP, DNS 등등 어플리케이션 계층에도 여러 가지가 있음.

버전별 차이점

  • HTTP/0.9

    • raw data transfer를 위한 간단한 프로토콜
    • HTTP 메서드나 헤더, status code같은 건 하나도 없었음.
  • HTTP/1.0

    • 각 요청에 버전 정보가 포함되고, 응답에 상태 코드가 포함되었음.
    • 헤더를 통해 메타데이터를 담아서 보낼 수 있게 되었음.
    • MIME-like message format
    • Modifiers on req/res semantics
    • proxy, cache server, persistent connection, virtual host 등 고려 못함
  • HTTP/1.1

    • HTTP 메서드 OPTIONS, PUT, DELETE, TRACE 추가
    • Accept 헤더: 클라이언트에서 처리 가능한 Media Type 명시

HTTP 구현? - 우리도 HTTP를 만들어볼 수 있을까?

Content Negotiation

The process of selecting the best representation for a given response when there are multiple representations available.

다양한 Representation 중에 가장 적절한 것을 고르는 과정

References