본문 바로가기

Deprecated/HTTP

[Web/HTTP] HTTP 간단 정리

HTTP

HTTP는 하이퍼 텍스트 전송 프로토콜(HyperText Transfer Protocol)의 약자입니다. 이름에서 알 수 있듯이 텍스트 기반의 통신 규약으로서 인터넷에서 데이터를 주고 받기 위한 양식입니다. 초기에는 웹 브라우저와 웹 서버 간의 커뮤니케이션의 목적으로 디자인되었으나 지금은 여러 용도로 활용되고 있습니다.

  • OSI 7계층 중 애플리케이션 계층에 속합니다.
  • 클라이언트가 요청을 생성하기 위해 연결을 열고, 응답을 받을 때까지 대기하는 전통적인 클라이언트-서버 모델입니다.
  • 무상태 프로토콜로서 서버가 두 개의 연속된 요청 사이에 어떠한 데이터-상태도 유지하지 않습니다.
  • 어떤 측면에서 무상태 프로토콜은 취약할 수 있습니다. 이러한 취약성은 Cookie와 Session으로 해결 될 수 있습니다.
  • 일반적으로 전송 계층에서 안정성을 위해 TCP/IP 레이어를 기반으로 동작합니다(UDP는 데이터 손실이 있기 때문에 사용하지 않습니다).
  • 신뢰성을 보장하기 위해 RUDP(Reliable UDP)가 대안으로 사용되기도 합니다.

HTTP의 기본 동작

클라이언트는 URL 또는 URI를 사용하여 서버에 요청을 보내고, 서버는 클라이언트에게 응답합니다. 이러한 일련의 과정은 클라이언트에 의해서 반복 될 수 있습니다.

  • Request
    클라이언트가 서버에 요청
  • Response
    서버는 클라이언트에 응답

일반적으로 HTTP는 클라이언트가 서버로부터 HTML 문서와 같은 리소스를 가져오기 위해서 사용합니다. 이런 구성은 전통적인 웹 브라우저와 웹 서버 간의 통신 방식입니다. 하나의 온전한 HTML 문서는 다음 하위 문서-텍스트, 이미지, 비디오, 스크립트 등으로 재구성됩니다.

출처:https://developer.mozilla.org/ko/docs/Web/HTTP/Overview

클라이언트가 보내는 일련의 Request는 서버에 도달하며, 서버는 Request를 적절히 처리하여 클라이언트에 다시 Response합니다. 이러한 Request와 Response 사이에는 라우터, 게이트웨이, 모뎀, 프록시 등 여러 개체들이 존재 할 수 있습니다. 하지만 HTTP는 애플리케이션 계층이라는 최상위 계층에서 구현되기 때문에, 이러한 개체들은 네트워크 계층 및 전송 계층 안에 숨겨집니다.

출처:https://developer.mozilla.org/ko/docs/Web/HTTP/Overview