[Web] HTTP

HTTP

  • Hyper Text Transfer Protocol의 약자
  • 웹 서버와 클라이언트간 통신을 위한 규약
  • TCP 기반이나 비 연결성 프로토콜
  • Requset Response로 동작하기 때문에 Stateless하다

HTTP 1.1

  • Keep-Alive 설정이 default로 되어있다

HTTP 2.0

  • Multiplexed Stream
    • 한 커넥션으로 여러개의 메세지를 주고 받는다
  • Server Push
    • 클라이언트의 요청 없이도 서버는 마음대로 자원을 보내줄 수 있다
    • 즉 한 HTML 문서 내에서 여러개의 리소스가 필요할 경우 HTTP 1.1에서는 클라이언트측에서 HTML을 해석하면서 리소스를 요청하게 된다
    • HTTP 2.0에서는 클라이언트가 요청하지 않아도 관련 리소스를 Push 해준다
  • Header Compression
    • HTTP 특성상 중복되는 헤더가 존재하는데 이러한 경우 압축을 통해 성능을 향상시킨다
  • Stream Prioritization
    • 리소스가 무거운 파일들에 대해 의존관계를 통해 랜더링 문제를 해결한다

Time Out

사용자가 서버에서 일정 시간 응답이 없을 때 타임아웃으로 간주하고 페이지를 갱신한다. 그렇기 때문에 서버를 만들 때 사용자 관점을 고려한 타임아웃 시간을 설정해야 한다.

Request Method

GET

GET은 브라우저가 서버에게 요청할 때 사용하는 메소드다. 바디가 없고 파라미터는 URI에 포함시켜 보낸다. CRUD의 R에 해당한다.

POST

POST는 브라우저가 서버에게 데이터가 포함된 요청을 보낼 때 사용하는 메소드다. 바디가 있기 때문에 데이터를 바디에 실어서 보낸다. CRUD의 C에 해당한다.

DELETE

DELETE는 브라우저에서 서버에게 삭제 요청을 할 때 사용하는 메소드다. CRUD의 D에 해당한다.

PUT PATCH

PUT은 모든 정보의 업데이트, PATCH는 일부 정보의 업데이트에 사용되는 메소드다. CRUD의 U에 해당한다.

상태코드

  • 2XX : 성공
  • 3XX : 리다이렉션
  • 4XX : 클라이언트 사이드 실패
  • 5XX : 서버 사이드 실패
Author: Song Hayoung
Link: https://songhayoung.github.io/2020/06/29/Web/Http/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.