HTTP

이재윤·2021년 2월 13일
0

네트워크

목록 보기
2/9
post-thumbnail
  • Web and HTTP
    • Web Page
      여러 Object들을 참조하고 있는 Base HTML file로 구성되어 있다.
    • HTTP (Hyper Text Transport Protocol)
      • Application Layer에 구현되어 있다.
      • Client-Server 모델이다.
      • TCP를 사용한다.
      • HTTP는 stateless이다. (client가 이전에 서버에 요청했던 것을 기억하지 않는다.)
        * 과거의 요청사항들을 기억한다면, overhead가 발생한다.
  • HTTP Connections
    • non-persistent HTTP (HTTP 1.0)
      한번의 TCP연결로 최대 한개의 object들을 가져올 수 있다. (하나의 객체를 가져오면 연결을 자동으로 끊는다.)
      여러개의 object들을 가져오기 위해서 여러번의 TCP연결이 필요하다.
      여러번 연결을 하게되면 OS overhead가 발생한다. (∵ TCP는 buffer가 필요)
      보통 browsers는 TCP연결을 병렬로 시행한다.

      1. Client가 Server에게 80번 port를 통해 TCP연결을 요청한다.
      2. Server가 80번 port로 들어온 요청을 승인한 후 Client에게 알려준다.
      3. Client가 연결된 TCP연결을 통해 HTTP request msg를 전송한다.
      4. Server는 요청된 object들을 response msg에 담아 client에게 전송한다.

      만약 10개의 객체들을 가져온다면 1~4과정을 10번 반복해야 한다.

    • persistent HTTP (HTTP 1.1 ~)
      한번의 TCP연결로 여러개의 object들을 가져올 수 있다.
      non-persistent HTTP보다 시간이 덜 걸린다.
  • HTTP message
    HTTP message는 ASCII로 이루어져 있다. (human-readable)
    • Request Message
      • Uploading Form input
        1. Post
          Post method를 이용하게 되면, entity body에 정보를 담아 요청을 보낸다.
        2. URL method
          Get method를 이용하며, 정보를 URL에 반영하여 요청을 보낸다.
    • Response Message
      • Response Status Code/Phrase
        1. 200 OK
          request와 그에 대한 response가 정상적으로 반환
        2. 301 Moved Permanently
          request를 요청한 객체의 위치가 옮겨 졌을때, response header line에는 옮겨진 위치가 담겨있다.
        3. 400 Bad Request
        4. 404 Not Found
        5. 505 HTTP version not supported
          ....
  • Cookies
    HTTP는 stateless이므로 cookies를 이용해 이전 상태들을 저장한다.
    1. Client가 amazon web site에 처음으로 request msg를 보낸다.
    2. Amazon server는 사용자에게 고유한 ID를 생성한 후 database에 저장한다.
    3. Response header line에 cookie 정보를 실어 client에 전송한다.
    4. 받은 cookie 정보를 browser의 cookie file에 저장한다.
    5. Request msg에 cookie 정보를 실어 server에 전송한다.
    6. 받은 cookie 정보를 바탕으로 사용자별 특정 action을 취한다.
    7. client에 response msg를 전송한다.
    8. 시간이 지나도 browser의 cookie file을 바탕으로 cookie를 전송한다.
  • Proxy(Cache) Server
    Origin server없이 web client의 request에 대한 응답을 제공해 주는 서버.
    • Client는 proxy server에 request를 보낸다.
      • Cache에 Object가 있을 때: Proxy server에서 Client로 response를 보낸다.
      • Cache에 Object가 없을 때: Proxy server에서 origin server로 request를 보낸 후 받은 결과를 client에게 반환한다.
      • ∴ Proxy server는 client가 될 수도, server가 될 수도 있다.
    • Proxy server는 ISP, university, company.... 에서 설치 한다.
    • Proxy server를 사용하는 이유
      1. Client의 request에 대한 response 시간을 줄일 수 있다.
      2. Access link의 traffic을 줄일 수 있다.
      3. Poor cp에게 유리하다.
    • Conditional GET
      Cache가 최신 object를 가지고 있지 않다면, 응답을 보내지 않는다.
      • 장점
        정보의 최신화를 보장할 수 있다.
      • 단점
        매번 origin server요청을 보내야 하므로 항상 access link를 통과해야 한다.

0개의 댓글