HTTP 입문


HTTP 개요

HTTP(HyperText Transfer Protocol)는 WWW에서 웹 서버와 클라이언트(브라우저)간에 데이터(웹페이지 등)를 송수신하기 위한 프로토콜이다. 기본적으로 텍스트 메시지 리소스를 교환하고, 그 밖에 다양한 리소스(.jpeg 등)도 교환 가능하다.

  • HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP로 구성된 프로토콜이다.
  • HTTP는 상태를 가지고 있지 않는 Stateless 프로토콜이다.
  • Method, Path, Version, Headers, Body 등으로 구성된다.

HTTP 버전에 따라에 아래의 사양서가 공개되어 있다.

HTTP Messages

HTTP 메시지에는 두 가지 유형이 있다.

  • HTTP 요청 메시지: 클라이언트가 서버에 리소스를 요청한다.
  • HTTP 응답 메시지: 서버가 클라이언트에 HTTP 요청의 결과를 응답한다.

HTTP, HTTPS

  • HTTP
    • HTTP는 텍스트 교환이고 HTML 페이지도 텍스트이다.
    • 바이너리 테이터로 되어 있는 것도 아니고, 단순 텍스트를 주고 받기 때문에 누군가 네트워크에서 신호를 가로채어 본다면 내용이 노출된다. 이런 보안상의 문제를 해결해주기 위해 생긴 것이 HTTPS이다.
  • HTTPS
    • HTTPS는 인터넷 상에 정보를 암호화하는 SSL(Secure Soket Layer) 프로토콜을 이용하여 클라이언트와 서버가 데이터를 주고 받는 통신규약이다.
    • HTTPS는 HTTP 텍스트를 암호화 하는 것이다.
    • HTTPS의 S는 Secure Socket, 보안 통신망을 의마한다.
    • HTTP의 암호화 원리의 핵식은 공개키 암호화 방식이다.
      • 인증서를 발급하여 보내는 메세지를 공개키로 암호화하도록 하고 있다.
      • 암호화된 메세지는 개인키를 가지고 있어야만 가능하기 때문에, 중간에 누구도 원본 데이터를 얻을 수 없다.