웹 서버와 웹 브라우저 간의 통신을 위한 응용 계층의 프로토콜
특징
- Stateless: 서버는 클라이언트의 이전 요청에 대한 정보를 유지하지 않는다.
- 확장성: 개별 클라이언트의 세션 정보를 유지할 필요가 없기 때문에 매번 들어오는 클라이언트의 요청에 어느 서버가 응답하더라도 상관이 없어진다.
→ 서버가 장애가 발생하더라도, 해당 요청을 다른 서버에서 처리함으로써 영속성을 유지 할 수 있다.- 서버에 클라이언트에 대한 정보가 없으므로, 클라이언트는 필요한 데이터를 얻기 위해 한 번에 많은 양의 데이터를 전달해야 한다.
→ 쿠키, 세션 등으로 어느정도 해결 할 수 있음- HTTP uses TCP: 3-Way handshaking을 통한 연결을 수립 → 데이터를 주고 받기 → 4-Way handshaking을 통한 연결 종료
HTTP format
- request line: 요청 메서드 (GET, POST, 등), URL, 및 HTTP 버전이 포함
- header: 요청의 메타데이터가 포함되며, 언어, 인코딩 방식, 쿠키 등
- body: 실제 요청 데이터 본문
HTTP 요청과 응답 메시지의 메타 정보를 전달하는 데 사용되며, 일반적으로 "General Headers," "Response Headers," 그리고 "Request Headers"와 같이 세 가지 주요 부분으로 구성된다.
헤더 필드의 이름과 해당 값 사이에 콜론(:)으로 구분된 key-value 형태를 가진다.
HTTP 요청 또는 응답의 일부로, 실제 데이터 또는 컨텐츠가 포함된 부분
요청한 데이터 또는 서버에서 클라이언트로 전송하고자 하는 정보를 포함하며, 다양한 형식(예: JSON, XML, HTML, 이미지 등)으로 구성될 수 있다.
큰 도움이 되었습니다, 감사합니다.