공부기록

간단한 프로토콜 HTTP 본문

Computer Science/네트워크

간단한 프로토콜 HTTP

gracelove91 2019. 12. 1. 01:49
반응형
  1. HTTP는 클라이언트와 서버 간에 통신을 한다.

    • 리소스가 필요하다고 하는 쪽이 클라이언트, 리소스를 제공하는 쪽이 서버.
    • 한 번의 통신에서 반드시 한 쪽은 클라이언트, 다른 한 쪽은 서버의 역할.
  2. 리퀘스트와 리스폰스를 교환하여 성립

    • 클라이언트 측에서 리퀘스트

    • 서버 측에서 리스폰스

    • 리퀘스트를 수신해야 리스폰스를 송신한다.

    • 리스폰스 메세지 구성

      HTTP/1.1 200 OK                        | 프로토콜버전 / 상태코드 / 상태코드설명
      Date: Tue, 10 Jul 2012 06:50:15 GMT    |
      Content-Length: 352                    | 리스폰스 헤더 필드
      Content-Type: text/html                |
      
      <html>                                   | 바디         
      ...                                       |
      
  1. HTTP는 상태를 유지하지 않는 프로토콜

    • stateless 프로토콜.
    • 이전에 보낸 리퀘스트나 리스폰스에 대해 전혀 기억하지 못함.
    • 새로운 리퀘스트 -> 새로운 리스폰스
    • 무상태 특성만으로는 처리하기 힘든 일이 있다. 따라서 쿠키가 등장.
  2. 리퀘스트 URI로 리소스를 식별

    • 클라이언트는 리소스를 호출할 때마다 리퀘스트를 송신할 때 리퀘스트 안에 URI를 리퀘스트 URI라고 불리는 형식으로 포함해야한다.

      • https://gracelove.me/index.html

        • 모든 URI를 리퀘스트 URI에 포함하는 방법.

          GET https://gracelove/index.html HTTP/1.1
          ...
        • Host 헤더 필드에 네트워크 로케이션을 포함하는 방법.

          GET /index.html HTTP/1.1
          Host: gracelove.me
          ...
  3. HTTP 메서드

    • GET
      • 리소스 획득.
      • 리퀘스트 URI로 식별된 리소스를 가져올 수 있도록 요구.
      • 가져올 리소스 내용은 지정된 리소스를 서버가 해석한 결과.
    • POST
      • 엔티티를 전송하기 위해 사용
    • PUT
      • 파일전송
      • FTP에 의한 파일 업로드와 같이 리퀘스트 중 포함된 엔티티를 리퀘스트 URI로 지정한 곳에 보존하도록 요구
      • HTTP/1.1 PUT에는 자체 인증 기능이 없으므로, 웹어플리케이션의 인증 기능과 함꼐 쓰거나, REST와 같이 웹끼리 연계하는 설계 양식을 사용할 떄 이용.
    • HEAD
      • 메시지 헤더 취득
      • GET과 같은 기능이지만 메시지 바디는 돌려주지 않음.
      • URI유효성과 리소스 갱신 시간을 확인 목적 등에 쓰임.]
    • DELETE
      • 파일삭제
      • PUT 메소드와는 반대로 동작.
      • 리퀘스트 URI로 지정된 리소스의 삭제를 요구
      • 역시 인증기능 없으므로 일반적인 웹 사이트에서 사용x
    • OPTIONS
      • 리퀘스트URI로 지정된 리소스가 제공되고 있는 메서드를 조사하기 위해 사용.
      • 리스폰스로 서버가 제공하고있는 메소드를 되돌려줌.
반응형