포스트

HTTP 완벽 가이드 - HTTP 웹의 기초

목차

시작하며

다람쥐가 표지를 차지한 ‘HTTP 완벽 가이드’ 책을 샀다.
이 다람쥐를 믿고 웹에 대한 전반적인 지식을 습득하고자 한다.
결국 나는 웹 기반 개발에 관심을 가지는 것이기에,
그 생태계를 파악하고 이해하는 과정에
Http에 대한 이해없이는 불가능할 것 같다고 느꼈다.

HTTP 란

  • http는 현대 인터넷의 공용어 이다.

    • 모든 브라우저, 서버, 어플리케이션이 http 통신으로 대화하기 때문
  • 개발자에게 이로운 http

    • http 통신은 전송중 파괴, 중복, 왜곡에 대한 걱정을 없애준다.

http 통신의 대표적인 예

  • http 통신은 클라이언트와 서버의 요청/응답 통신의 형태로 이루어진다.
  • 우리가 실생활에서 크롬을 켜서 네이버를 들어가면 네이버의 서버가 화면을 우리의 브라우저에 뿌려주는것, 이때 화면으로 쓰이는 자원들을 리소스 라고 한다.

    💻(client) <——-> 🛢️(server)

리소스란?

  • 리소스는 웹 콘텐츠의 그 자체이다.
  • 웹 서버는 사용자의 요청에 따라 필요한 리소스를 클라이언트로 응답한다.

    - 정적파일
    |– 텍스트 파일
    |– HTML 파일
    |– 워드 파일
    |– 이미지 파일 …
    - 동적 콘텐츠
    |– 사용자의 요청에 따른 콘텐츠 생성

미디어 타입

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

  • MIME

    • 클라이언트 는 서버로부터 전송객체를(응답) 돌려받을 떄, MIME 타입을 통해
      다룰수 있는 객체인지 확인한다.
    • 본래 전자메일 시스템 사이에서 오가는 메시지의 문제점을 해결하기 위해 등장했다.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    // MIME 타입의 예시
    // Header
    {
    Content-Type : image/jpeg
    Content-Length : 12984
    }
      
    {
    Content-Type : application/json
    Content-Type : 120
    }
      
    

URI

  • 클라이언트가 특정 리소스를 지목하기 위해 고안된 요청 방식
  • 통합 자원 식별자 (uniform resource identifier) : URI
  • URI 는 우편주소와 같다. 리소스 주소를 고유하게 식별 할 수 있다.

URL

  • 리소스 식별자의 가장 흔한 형태로, 현재 채택되어 사용되는 방식이다.
  • 특정 서버안의 리소스에 대한 구체적인 주소(위치)를 명세한다.
  • URL 은 세개의 부분으로 나누어진 포맷을 따른다.

    • Scheme : 프로토콜을 서술 (http://)
    • 서버의 인터넷 주소 : www.naver.com
    • 웹서버 내 리소스 주소 : /webtoon/가나다라

      • http://www.naver.com/webtoon/가나다라
        Protocol | Web Server Location | Resource Location

Method

  • http 요청시 사용되는 명령의 범주
  • 모든 http 요청 메세지는 한 개의 Method 를 갖는다.
Method 설명
GET 지정한 리소스를 보내줘!
PUT 지금 보내는 데이터를 지정한 이름의 리소스로 저장해라~
DELETE 지금 말한 리소스를 서버에서 삭제해!
POST 클라이언트 데이터를 서버 게이트웨이 어플리케이션으로 보내라
HEAD 지정한 리소스에 대한 응답에서 http 헤더만 보내

상태 코드 (Status)

  • 200 : 정상
  • 302 : 다시보내라, 다른곳에서 리소스를 가져와바
  • 404 : 리소스를 찾을 수 없어

요청/응답 메세지

  • 메세지는 시작줄 / 헤더 / 본문으로 구성되어있다.
  • 시작줄 : 어떤 요청인지, 어떤 응답인지 기술되어있다.
  • 헤더 : 요청 및 응답 결과에 대한 형식정의 가 되어있다.
  • 본문 : 문자열, 요청 및 응답으로 오는 텍스트 메세지

웹의 구성요소

Proxy (프록시)

  • 클라이언트와 서버 사이에 위치한 HTTP 중개자
  • 클라이언트의 모든 요청을 받아 서버에 전달
  • 사용자 대신 서버에 접근

캐시 (Cache)

  • 클라이언트 측 HTTP 창고
  • 자주 찾는 것의 사본을 저장해두는 임시 창고

게이트웨이 (Gateway)

  • 다른 어플리케이션과 연결된 특별한 웹 서버
  • HTTP 트랙픽을 다른 프로토콜로 변환 하기위해 사용

터널

  • 단순히 HTTP 통신을 전달하기만 하는 특별한 Proxy
  • Raw 데이터를 열어보지 않고 원본 그대로 전달해주는 HTTP 어플리케이션

에이전트 (Agent)

  • 자동화된 HTTP 요청을 만드는 준지능적 웹 클라이언트
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.