-
HTTP 프로토콜 #1
백엔드/HTTP
2024. 8. 23. 15:57
HTTP
HTTP 란?
- HyperText Transfer Protocol (프로토콜)
- 데이터 전송 및 요청/응답 구조를 위해 Web에서 많이 사용
- 요청 - 응답 구조 (무상태 구조를 사용)
HTTP 버전
- TCP
- HTTP/1.1 (주로 사용)
- HTTP/2.0
- UDP
HTTP 메시지 전송 종류
- html , text
- json, xml
- image, 음성, 영상, 파일
- 거의 모든 형태
HTTP 특징
- 클라이언트 - 서버 구조
- 무상태(stateless)
- 비연결성
- 서버가 클라이언트 상태 보존x
- 클라이언트의 상태가 보존이 안되기에, 정보를 추가적으로 보내야한다.
- 요청에 대한 응답을하면 끝
- 서버 확장이 쉬움
상태 유지 (stateful) 구조
[단점]
- 리소스를 많이 차지하게 됨
- 정보를 유지하고 있는 서버가 항상 응답해야함 ( 서버 확장의 어려움 )
- 장애가 날경우 스왑할 서버가 존재할 수 없음
HTTP 메시지 구조
Start-Line
field-Line
[message-body]
GET /search?q=hello HTTP/1.1
Host : www.naver.com
- 설명
- Start-line
- GET : HTTP 메서드 (GET, POST, PUT, DELETE.. )
- PATH : 리소스 자원 위치
- Query : 쿼리
- 버전 : HTTP/1.1
- field-line
HTTP/1.1 200 OK
Content-Type : text/html; charset=UTF-8
Content-Length : 3423
<html>
//
</html>
- Start Line
- 버전 : HTTP/1.1
- 상태코드 : 200 (sucess)
- 상태코드 : 200 (Ok), 400 (클라이언트 오류) , 500( 서버오류 )
- field Line
- Content-Type : message body 형태 및 인코딩정보
- Content-Length : message body의 길이