
이 포스팅은 인프런 김영한 강사님의 <모든 개발자를 위한 HTTP 웹 기본 지식>을 수강하고, 공부하여 글로 정리한 것입니다. 그대로 갖다 붙여넣는 내용이 아니라 기억나는대로 작성한 후 다시 추가적으로 정리하는 방식을 취하고 있기 때문에 틀린 부분이 있을 수 있습니다. 잘못된 점은 짚어주시면 감사하겠습니다.
HyperText Transfer Protocol
HTML을 전달하는 프로토콜로 시작되었으나, 현재는 모든 데이터를 전송하는 것으로 발전.
버전은 HTTP/3까지 나왔으나, 현재 가장 많이 사용되는 버전은 HTTP/1.1
HTTP/1.1과 HTTP/2는 TCP 기반으로 동작하고, HTTP/3는 UDP 기반으로 개발됨.
서버가 클라이언트의 상태를 보존하지 않음.
상태유지(stateful)는 중간에 서버가 변경되지 않아야 함.
무상태는 중간에 서버 변동이 가능. => 응답 서버를 쉽게 바꿀 수 있어 무한한 서버 증설이 가능함.
한계 : 모든 것을 무상태로 설계할 수 있는 것은 아님(ex> 로그인). 데이터를 비교적 많이 보내게 됨.
서버가 클라이언트와의 연결을 유지하지 않아 서버 자원을 효율적으로 사용 가능함.
한계 : TCP/IP 연결을 새로 맺어야 함.(3 way handshake 시간 소요) 웹 브라우저로 사이트 요청 시 수많은 자원(JS, CSS, 이미지 등)이 함께 다운로드 됨. 현재는 HTTP 지속 연결로 문제 해결.
| HTTP 초기 | HTTP 지속 연결 |
|---|---|
![]() | ![]() |
