요즘 대부분 HTTP로 통신
HTTP/1.1 : 가장 많이 사용 가장 중요한 버전임
대부분 기능 다 들어 있음
RFC2068(1997) ->
RFC216(1999) ->
RFC7230~7235(2014)
HTTP2/3 은 성능 개선용
TCP: HTTP/1.1 , HTTP/2
UDP: HTTP/3
현재는 HTTP/1.1 주로 사용
-> HTTP2 / 3 도 점점 증가
클라이언트 이전 상태 보존
상태 보존 X
무상태에선
고객이 필요한 데이터를 그때마다 맞춰서 넣어준다.
백엔드개발에선 -> 요청이 많아지면 ? 서버증설 증설!!
클라이언트 A는 서버 1하고만 통신 하는데
서버 2로 바뀌면 처음부터 다시 해야됨.
클라이언트A는 애초에 필요한 데이터를 다포함해서 넘겨준다.
그래서 확장에 유리함
서버가 계속 연결을 유지해야 되는 단점..
(클라이언트 2, 3)
요청을 받으면 연결을 바로 끊기
(서버 유지 자원을 최소한으로 줄임)
TCP/IP 연결을 새로 맺어야 됨 - 3 way handshake 시간 추가
웹 브라우저 사이트를 요청하면 HTML , js ,css 추가이미지 등 수많은 자원 함께 다운로드
지금은 HTTP(지속연결) 로 문제 해결
HTTP2/3 에서 더 많은 최적화
ex) 정말 같은 시간에 딱 맞추어 발생하는 대용량
선착순 이벤트 같은거..
첫페이지 정적페이지 (순수HTML) -> 이벤트 참여버튼 (나타나서)누르게
구조가 다른 2개 메시지
start-line = request-line
request-line = method SP(공백) request-target SP
HTTP-versiion CRLF(enter)
종류: GET , POST , PUT , DELET
GET : resource 조회
POST : 요청 내역 처리
절대 경로로 시작한다
start-Line = status-line
status-line = HTTP-version SP status code SP
reason-phase CRLF
OWS 띄어쓰기 허용한다.
HTTP 단순하고 메시지도 단순함.
크게 성공하는 표준 기술은 단순하지만 확장 가능한 기술