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 : 서버 사이드 실패