HyperText Transfer ProtocolPUT, DELETE 추가→ 리소스의 우선순위가 없어 렌더링 비효율
→ 동시성을 위해 여러 연결 사용


Server Push - 데이터 하나를 요청했지만 여러 데이터 응답 (html 요청 - css, js도 응답)handshake의 지연시간 등 문제 존재
TCP + TLS + HTTP의 기능을 모두 구현하는 프로토콜handshake 과정을 거치지 않아 속도가 빠르다Connection ID를 사용해 생성한 키로 통신을 암호화 → 이 설정을 캐싱해두었다가 바로 연결 성립
한 줄마다 \r\n 줄바꿈 문자가 포함

Header
Cookie : 클라이언트 - 서버 간의 공유할 수 있는 자원Access-Control-Allow-Origin : 다른 도메인 간의 요청 설정Content-Type, Content-Length : 리소스 타입과 크기Content-Type:
text/plain
text/html
text/css
image/jpeg
image/png
audio/mpeg
audio/ogg
audio/*
video/mp4
application/octet-stream
multipart/mixedCache-Control : 캐시 설정Expires : 캐시 만료 시간Last-modified, If-Modified-Since : 마지막 갱신 시간GET, POST, PUT, DELETE 등 요청 method 사용GET : URL 뒤에 쿼리로 필요한 인자를 전달하며 필요한 데이터나 웹페이지를 받아오는데 사용POST : BODY에 값을 붙여서 보내며 서버의 상태 변화를 일으키기도 함PUT : 데이터 전체 교체PATCH : 데이터 부분 변경DELETE : 데이터 삭제OPTIONS : 서버에서 지원하는 메서드 확인200 (OK) : 정상적인 처리302 (See Other) : 리다이렉트 용도304 (Not Modified) : 수정되지 않았으므로 캐시 사용하라403 (Forbidden) : 권한 없음404 (Not Found) : 리소스가 없음500 (Internal Server Error) : 서버 내부 오류502 (Bad Gateway) : 중간 계층 오류503 (Service Unavailable) : 서비스 제공 불가HTTP Request 요청 메시지를 만들어 서버에 전송HTTP Response 메시지를 받아 화면에 표시Render Tree 생성자바스크립트 코드가 포함되면 HTML 파싱이 중단되고 JS 엔진에게 제어권이 넘어감async, defer 어트리뷰트를 통해 JS 코드를 비동기적으로 불러옴으로써 DOM 렌더링의 블로킹을 방지할 수 있음참고자료
https://velog.io/@ziyoonee/HTTP1-부터-HTTP3-까지-알아보기
https://babbab2.tistory.com/4
https://incheol-jung.gitbook.io/docs/q-and-a/computer-science/http-header
https://velog.io/@uncyclocity/JavaScript-브라우저의-렌더링-과정