ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [HTTP 완벽 가이드] 3장. HTTP 메시지
    Engineering/Network 2021. 9. 12. 02:58
    반응형

    메시지의 흐름

    • HTTP 메시지는 HTTP 애플리케이션 간에 주고받은 데이터의 블록들이다.
    • 이 데이터의 블록들은 메시지의 내용과 의미를 설명하는 텍스트 메타 정보로 시작하고 그 다음에 선택적으로 데이터가 올 수 있다.

     

    인바운드, 아웃바운드

    • 메시지가 클라이언트에서 서버로 향하는 것을 인바운드라고 한다.
    • 클라이언트의 요청을 처리하고 메시지가 서버에서 클라이언트로 다시 향하는 것을 아웃바운드라고 한다.

     

    다운스트림으로 흐르는 메시지

    • 다운스트림(downstream)은 하류라는 뜻을 가졌다. 데이터의 흐름을 물이 흐르는 원리와 비슷하게 설명한 것이다.
    • 물은 항상 상류에서 하류로 흐르듯이, 데이터도 항상 업스트림에서 다운스트림으로 흐른다.

     

    메시지의 각 부분

    • 메시지는 세 부분으로 이루어져 있다. (시작줄, 헤더 블록, 본문)
    • 시작줄은 어떤 메시지인지 서술한다.
    • 헤더 블록은 속성 담고 있다.
    • 본문은 데이터를 담고 있거나 없을 수도 있다.

     

    메서드

    안전한 메서드

    • HTTP는 안전한 메서드라 불리는 메서드의 집합을 정의한다. 안전한 메서드는 GET과 HEAD 와 같이 서버의 상태를 변경시키지 않는 것을 의미한다.
    • 안전한 메서드가 서버의 상태를 변경시지지 않는다는 보장은 없다. 이는 개발자의 구현에 달렸기 때문이다.

    GET

    • 서버에게 리소스를 달라고 요청하기 위해 사용한다.
    • HTTP/1.1은 서버가 이 메서드를 구현할 것을 요구한다.

    HEAD

    • HEAD 메서드는 GET처럼 동작하지만, 서버는 응답으로 헤더만 돌려준다.
    • 리소스를 가져오지 않고도 그에 대해 무엇인가(타입이라던가)를 알아낼 수 있다.
    • 응답의 상태 코드를 통해, 개체가 존재하는지 확인할 수 있다.
    • 헤더를 확인하여 리소스가 변경되었는지 검사할 수 있다.

    PUT

    • PUT 메서드는 서버의 상태를 변경한다.
    • 서버가 요청의 본문을 가지고 요청 URL의 이름대로 새 문서를 만들거나, 이미 URL이 존재한다면 본문을 사용해서 교체하는 것이다.

    POST

    • 서버에 입력 데이터를 전송하기 위해 설계되었다.
    • POST는 서버에 데이터를 보내기 위해 사용하고, PUT은 서버에 있는 리소스에 데이터를 입력하기 위해 사용한다.

    TRACE

    • 클라이언트의 요청은 방화벽, 프록시, 게이트웨이 등의 애플리케이션을 통과할 수 있는데, 각 구간은 원래의 HTTP 요청을 수정할 수 있다.
    • TRACE 요청은 목적지 서버에서 루프백(loopback) 진단을 시작한다. 요청 전송의 마지막 단계에 있는 서버는 자신이 받은 요청 메시지를 본문에 넣어 TRACE 응답을 되돌려준다.
    • 클라이언트는 자신과 목적지 서버 사이에 있는 모든 HTTP 애플리케이션의 요청/응답 연쇄를 따라가면서 자신이 보낸 메시지가 망가졌거나 수정되었는지, 만약 그렇다면 어떻게 변경되었는지 확인할 수 있다.
    • TRACE 요청은 주로 진단을 위해 사용하지만, HTTP 애플리케이션에 따라 각 메서드가 다르게 동작할 수 있으므로 주의해야 한다.
    • TRACE 요청은 어떠한 엔티티 본문도 보낼 수 없고, 응답의 엔티티 본문에는 서버가 받은 요청이 그대로 들어있다.

    OPTIONS

    • 서버에게 특정 리소스에 대해 어떤 메서드가 지원되는지 질의한다.

    DELETE

    • 서버에게 요청 URL로 지정한 리소스를 삭제하도록 요청한다.

     

    헤더

    일반 헤더 (General Headers)

    • 일반 헤더는 클라이언트와 서버 양쪽 모두에서 사용한다.
    • 클라이언트, 서버, 여러 애플리케이션들을 위해 다양한 목적으로 사요ㅕㅇ된다.

    요청 헤더 (Request Headers)

    • 요청 메시지를 위한 헤더이다.
    • 서버에게 클라이언트가 받고자 하는 데이터의 타입이 무엇인지와 같은 부가 정보를 제공한다.

    응답 헤더 (Response Headers)

    • 응답 메시지는 클라이언트에게 정보를 제공하기 위한 자신만의 헤더를 갖고 있다.

    엔티티 헤더 (Entity Headers)

    • 엔티티 본문에 대한 헤더를 말한다. 예를 들어, 엔티티 헤더는 엔티티 본문에 들어있는 데이터의 탕비이 무엇인지 말해줄 수 있다.

     


    참고자료

    http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966261208&orderClick=LEA&Kc= 

     

    HTTP 완벽 가이드 - 교보문고

    웹은 어떻게 동작하는가 | 웹 세상을 떠받치고 있는 HTTP에 대한 모든 것모든 성공적인 웹 트랜잭션 뒤에는, 웹 클라이언트와 서버가 문서와 정보를 교환하는 언어인 HTTP가 있다. HTTP는, 회사 인트

    www.kyobobook.co.kr

     

    반응형

    댓글

Designed by Tistory.