HTTP 완벽 가이드 1-1. HTTP 개관


📘 HTTP 완벽 가이드 읽고 정리하기 🐿︎



HTTP


  • HTTP : HyperText Transfer Protocol

  • HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜

  • 웹에서 이루어지는 모든 데이터 교환의 기초

  • 전 세계의 웹 서버로부터 대량의 정보를 빠르고, 간편하고, 정확하게 웹 브라우저로 전달

  • 신뢰성 있는 데이터 전송 프로토콜 사용 -> 데이터 전송 중 손상되거나 꼬이지 않음을 보장



웹 클라이언트 / 서버


  • 웹 서버

    • 웹 콘텐츠 존재, 웹 리소스를 관리하고 제공

    • HTTP 프로토콜로 의사소통 -> HTTP 서버라고 부름

    • 인터넷의 데이터 저장, HTTP 클라이언트가 요청한 데이터 제공

  • 클라이언트 : 서버에 HTTP 요청 > 서버 : 요청된 데이터 HTTP로 응답



리소스


  • HTTP 요청 대상을 리소스라고 부름

  • 웹 리소스 = 웹 콘텐츠의 원천

    • 정적 콘텐츠 : 텍스트 파일, HTML 파일, JPEG 이미지 파일, AVI 동영상 파일, …

    • 동적 콘텐츠 : 요청에 따라 콘텐츠를 생성

  • 웹페이지는 리소스의 모음



MIME


  • 미디어 타입 = MIME 타입 (Multipurpose Internet Mail Extensions (다목적 인터넷 메일 확장))

  • 각기 다른 전자메일 시스템 사이에서 메시지가 오갈 때 겪는 문제점을 해결하기 위해 설계되었지만, HTTP에서 멀티미디어 콘텐츠를 기술하고 라벨을 붙이기 위해 채택됨

  • 웹 서버는 모든 HTTP 객체 데이터에 MIME 타입을 붙임 -> 웹브라우저는 서버로부터 객체를 돌려받을 때 MIME 타입을 통해 다룰 수 있는 객체인지 확인

  • ‘주 타입 / 부 타입’ 형태로 이루어진 문자열 라벨 (ex) text/html, image/jpeg, …)



URI / URL / URN


  • URI

    • Uniform Resource Identifier, 통합 자원 식별자

    • 정보 리소스를 고유하게 식별하고 위치를 지정할 수 있음 (인터넷에 있는 자원을 나타내는 유일한 주소)

    • URI의 하위 개념으로 URL, URN 존재

  • URL

    • Uniform Resource Locator, 통합 자원 지시자

    • 특정 서버의 한 리소스에 대한 정확한 위치와 접근 방법을 나타냄

    • 대부분의 URL은 세 부분으로 이루어진 표준 포맷을 따름

        1. 스킴(scheme), 리소스에 접근하기 위해 사용되는 프로토콜, 보통 HTTP 프로토콜 (http://)
        1. 서버의 인터넷 주소 (www.***.com)
        1. 웹 서버의 리소스
  • URN

    • Uniform Resource Name, 유니폼 리소스 이름

    • 인터넷에 존재하는 각종 정보들의 유일한 이름을 표시하는 식별자



트랜잭션


  • 트랜잭션 = 요청 명령 메시지 + 응답 결과 메시지



HTTP 메서드


HTTP 요청 메소드와 상태 코드

  • HTTP 요청 메시지는 한 개의 메서드를 가짐

  • 메서드는 서버에게 어떤 동작을 해야하는지 알려줌

    • GET : 서버에서 클라이언트로 지정한 리소스 요청, 데이터를 받기만 함

    • PUT : 클라이언트에서 서버로 보낸 데이터 지정한 이름의 리소스로 저장 요청

    • DELETE : 지정한 리소스 서버에서 삭제 요청

    • POST : 클라이언트 데이터를 서버 게이트웨이 애플리케이션으로 전송 요청

    • HEAD : 지정한 리소스에 대한 응답에서 HTTP 헤더 부분만 요청, 응답 본문을 포함하지 않음



HTTP 요청/응답 메시지


    • 웹 클라이언트 -> 웹 서버 : 요청 메시지

    • 웹 서버 -> 웹 클라이언트 : 응답 메시지

  • 시작줄, 헤더, 본문 세 부분으로 구성

    • 시작줄 : 실행되어야 할 요청 또는 요청 수행에 대한 성공, 실패

    • 헤더

      • 요청에 대한 설명 또는 메시지 본문에 대한 설명

      • 요청에 대한 모든 메타 정보가 전송되었음을 알려주는 빈 줄 삽입

      • 본문의 존재 유무 및 크기 명시

    • 본문

      • 요청의 본문은 웹 서버로 데이터를 전송, 응답의 본문은 클라이언트로 데이터 반환

      • 시작줄과 헤더는 문자열로만 구성, 본문은 이진 데이터(이미지, 비디오, 응용 소프트웨어 등) 포함 가능



TCP/IP


  • TCP : Transmission Control Protocol, 전송 제어 프로토콜

    • 오류 없는 데이터 전송

    • 순서에 맞는 전달 (보낸 순서대로 데이터 도착)

    • 조각나지 않는 데이터 스트림 (어떤 크기로든 전송 가능)

  • TCP/IP는 TCP와 IP가 층을 이루는 패킷 교환 네트워크 프로토콜의 집합

  • TCP 커넥션이 맺어지면 클라이언트와 서버 컴퓨터 간에 교환되는 메시지가 없어지거나 손상되는 등의 일은 없음

  • 물리계층 - 데이터링크계층 - 네트워크계층(IP) - 전송계층(TCP) - 애플리케이션계층(HTTP)

  • OSI 7계층 vs TCP/IP 계층

  • IP : Internet Protocol, 인터넷 프로토콜

    • HTTP 메시지 전송 전 IP 주소와 포트번호를 사용해 클라이언트와 서버 사이에 TCP/IP 커넥션을 맺어야 함

Categories:

HTTP