Protocol HTTP란 어떤 프로토콜인가?

HTTP는 웹 브라우저를 통해 인터넷으로 평문 통신을 수행할 수 있는 프로토콜

  • HTTPHyper Text Transfer Protocol의 약자로, WWW(World Wide Web, 인터넷) 상에서 데이터를 주고 받기 위한 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜입니다.
  • HTTP는 어떤 종류의 데이터든지 전송할 수 있도록 설계되어있지만 주로 HTML문서를 주고받는데 쓰입니다.
  • 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 됩니다.
  • HTTP를 통해 전달되는 자료는 http:로 시작하는 URL(인터넷 주소)로 조회할 수 있으며, 사용하는 포트는 80번입니다.

  • HTTP 통신은 주로 웹 브라우저(Internet Explorer, Chrome, Firefox)를 이용하여 통신하며, 이외에도 시스템의 특정 프로그램(curl, wget)을 이용하여 통신할 수 있습니다.
  • HTTP의 단점이 하나 있는데, 인터넷 상에서 데이터를 받아 중간에 볼 수 있다면, 이러한 데이터는 평문(사람이 알아볼 수 있는 정보)으로 보입니다.
  • 두 번째 슬라이드와 같이 Wireshark로 HTTP 통신 정보(패킷)을 캡처해 보면 평문이 그대로 노출되는 것을 볼 수 있습니다.
  • 네트워크가 설계되는 과정에서 생겨난 HTTP는 보안성을 고려하지 않은 설계로, 네트워크 상에서 패킷이 그대로 노출되는 취약점이 있습니다.

HTTP의 헤더 구조와 간략한 설명

Photo
  • HTTP Header(HTTP 헤더)HTTP 통신을 위해 필요한 정보들이 입력되어 있는 데이터 영역을 말합니다.
  • 이러한 헤더는 데이터를 받기 전에 적절한 장소로 전송하기 위한 설정값이라고 생각하시면 좋습니다.
  • HTTP 헤더에는 Host, Accept, User-Agent, Referer, Cookie, Content-Type, Content-Length 등의 정보가 들어있습니다.
Photo

HTTP Method(HTTP 메소드)와 Content-Type이란?

Photo
  • HTTP Method(HTTP 메소드)HTTP 통신이 어떤 형태로 통신할 건지결정하는 역할을 합니다.
  • 이러한 메소드는 7가지가 있으며 각각의 역할이 있습니다.(참고 사이트 : HTTP 응답코드와 HTTP 메소드)
  • 보편적으로 웹에서는 GET, POST를 주로 사용합니다.
# 타입 의미 예시
1 Text 사람이 읽고, 직접 이해할 수 있는 텍스트 문자열 Text/xml
2 Image 그림 데이터 image/jpeg
3 Audio 음성 데이터 audio/mpeg
4 Video 동영상 데이터 video/mp4
5 Application 모든 종류의 이진 데이터 application/pdf
6 Multipart 복수의 데이터로 이루어진 복합 데이터 multipart/related
7 Message 전자 메일 메시지 message/rfc822
8 Model 복수 차원으로 구성하는 모델 데이터 model/vrml
  • HTTP 헤더에는 보내지는 데이터 즉, 컨텐트의 타입이 포함됩니다.
  • 이러한 컨텐트의 타입은 Content-Type이라고 되어 있는 헤더 영역에 지정되는데, 이 값은 표준 MIME Type의 하나이다.
  • MIME-Type을 살펴 봄으로써, 브라우저(Internet Explorer, Chrome, Firefox 등)는 데이터를 나타내는데 어떤 종류의 파일 Stream인지를 알게 되며, 또한 서버에서 데이터를 해석할 때도 중요한 역할을 합니다.

학습 키워드

  • HTTP, HTTPS
  • Secure Protocol
  • HTTP 평문 전송과 암호화
  • HTTP Header / HTTP 헤더
  • HTTP Method, Content-Type