HTTP 개관

연어는결국강으로·2023년 3월 3일
0

HTTP 완벽 가이드

목록 보기
1/3

1. 학습 목표

  • 얼마나 많은 클라이언트와 서버가 통신하는지
  • 리소스(웹 컨텐츠)가 어디서 오는지
  • 웹 트랜잭션이 어떻게 동작하는지
  • HTTP 통신을 위해 사용하는 메시지의 형식
  • HTTP 기저의 TCP 네트워크 전송
  • 여러 종류의 HTTP 프로토콜
  • 인터넷 곳곳에 설치된 다양한 HTTP 구성요소

1) 웹 클라이언트와 서버

  • HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용하기 때문에, 데이터가 지구 반대편에서 오더라도 전송 중 손상되거나 꼬이지 않음을 보장한다.
  • 웹 컨텐츠는 웹 서버에 존재한다.
  • 웹 서버는 HTTP 프로토콜로 의사소통하기 때문에 보통 HTTP 서버라고 불린다.

  • 클라이언트 -> 서버에게 HTTP 요청 -> 서버가 HTTP 응답

2) 리소스

  • 웹 서버는 리소스를 관리하고 제공한다.

  • 가장 단순한 웹 리소스는 웹 서버 파일 시스템의 정적 파일이다.

  • 리소스는 반드시 정적 파일이어야할 필요는 없다. 리소스는 요청에 따라 콘텐츠를 생산하는 프로그램이 될 수도 있다. ( WAS 도 리소스라는 말이네? )

    🐰 미디어 타입

  • HTTP는 웹에서 전송되는 객체 각각에 MIME 타입이라는 데이터 포멧 라벨을 붙인다.

  • 웹브라우저는 서버로부터 객체를 돌려받을 때, 다룰 수 있는 객체인지 MIME 타입을 통해 확인한다.

  • MIME타입은 / 으로 구분된 primary object type과 specific subtype으로 이루어진 문자열 라벨이다. 예를 들면 다음과 같다.

    • HTML로 작성된 텍스트 문서는 text/html 라벨이 붙는다.
    • plain ASCII 텍스트 문서는 text/plain 라벨이 붙는다.
    • JPEG 이미지는 image/jpeg가 붙는다.
    • 애플 퀵타임 동영상은 video/quicktime 이 붙는다.

    🐰 URI

  • 서버 리소스 이름은 통합 자원 식별자(Uniform Resource Identifier), 혹은 URI로 부른다.

  • URI는 URL URN 두 가지가 있다.

  • URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 서술한다.

  • URN은 컨텐츠를 이루는 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할을 한다.

    3) 트랜잭션

  • HTTP 트랜잭션은 요청 명령과 응답 결과로 구성되어 있다.

  • 이 상호작용은 HTTP 메시지라고 불리는 정형화된 데이터 덩어리를 이용해 이루어진다.

    😸 메서드

  • HTTP는 HTTP 메서드라고 불리는 여러 종류의 요청 명령을 지원한다.

  • 모든 HTTP 요청 메시지는 한 개의 메서드를 갖는다.

  • 메서드는 서버에게 어떤 동작이 취해져야 하는지 말해준다.

    👑흔히 쓰는 HTTP 메서드들

    HTTP 메서드설명
    GET서버에게 클라이언트로 지정한 리소스를 보내라.
    PUT클라이언트에게 서버로 보낸 데이터를 지정한 이름의 리소스로 저장하라.
    DELETE지정한 리소스를 서버에서 삭제하라.
    POST클라이언트 데이터를 서버 게이트웨이 애플리케이션으로 보내라.
    HEAD지정한 리소스에 대한 응답에서, HTTP 헤더만 보내라.

4) 메시지

  • 단순한 줄 단위의 문자열이다.
  • 이진 형식이 아닌 일반 텍스트이다.
  • 메시지는 시작줄, 헤더, 본문으로 이루어져 있다.

5) TCP 커넥션

  • HTTP는 네트워크 통신의 핵심적인 세부사항에 대해서 신경 쓰지 않는다.
  • 대신 이것을 TCP/IP에게 맡긴다.

TCP는 다음을 제공한다.

  • 오류 없는 데이터 전송
  • 순서에 맞는 전달(데이터는 언제나 보낸 순서대로 도착한다.)
  • 조각나지 않는 데이터 스트림(언제든 어떤 크기로든 보낼 수 있다.)
  • 인터넷 자체가 TCP/IP에 기초하고 있다.
  • TCP/IP는 TCP와 IP가 층을 이루는 패킷 교환 네트워크 프로토콜의 집합이다.
  • TCP/IP는 각 네트워크와 하드웨어의 특성을 숨기고, 어떤 종류의 컴퓨터나 네트워크든 서로 신뢰성 있는 의사소통을 하게 해준다.
  • 일단 TCP 커넥션이 맺어지면, 클라이언트와 서버 컴퓨터 간에 교환되는 메시지가 망가져서 수신되는 일은 결코 없다.

6) 웹의 구성요소

  • 프락시 : 클라이언트와 서버 사이에 위치한 HTTP 중개자
  • 캐시 : 많이 찾는 웹페이지를 클라이언트 가까이에 보관하는 HTTP 창고
  • 게이트웨이 : 다른 애플리케이션과 연결된 특별한 웹 서버
  • 터널 : 단순히 HTTP 통신을 전달하기만 하는 프락시

0개의 댓글