-
[Computer Network] HTTPComputer Network 2022. 11. 6. 23:32
1. HTTP란?
= hyper text transfer protocol
거의 모든 형태의 데이터 전송이 가능
1) http 버전
- 1.1 - 가장 기본, 많이 쓰이는 버전 , TCP
- 2 - 성능 개선, TCP
- 3 - 성능 개선, UDP
2) http 특징
- 클라이언트 / 서버 구조
- 스테이스리스
- 비연결성
- Http 메세지 구조
- 단순함, 확장 가능
2.클라이언트 서버 구조
클라이언트에서 request
서버에서 response
3.스테이스리스 프로토콜(무상태 프로토콜)
서버가 클라이언트 상태를 보존하지 않음!!
장점) 서버 확장 가능(스케일 아웃) → ex) 갑자기 클라이언트에서 요청이 많을 시, 서버 확장 가능
단점) 클라이언트에서 데이터 더 많이 전송해야함
다만, 로그인 같은 경우, 로그인 한 상태를 서버에 저장해야함. (브라우저 쿠키 혹은 서버 섹션을 통해)
최대한~~ 스테이스리스 형태로 가야함.
4.비연결성
클라이언트와 서버 사이를 tcp/ip를 통해 계속 연결을 유지할 경우, 수많은 클라이언트가 생길때, 서버는 자원을 많이 소모해야 된다.
→ 최소한의 자원을 유지를 위해 연결이 필요할 때만 연결을 하고, 필요하지 않으면 연결 종료해야함!
한계) 클라이언트에서 요청이 이뤄질때마다, TCP/IP 연결을 새로 맺어야 함. (시간 소요) → HTTP 지속연결(Persistent Connections)로 문제 해결
- 비슷한 시간대 resquest집단들을 한번에 연결하고, 종료시키기.
5. HTTP 메세지
[구조]
start-lineheader : field-name(대소문자구분x): fieldValue
empty-line
message-body
- 요청 메세지 start-line = method (space) request-target (space) http-version (enter)
- request-target = 절대경로 (”/”로 시작하는 경로) + ? query_params
2. 응답 메세지 start-line = HTTP Version (space) status-code (space)
'Computer Network' 카테고리의 다른 글
[AWS] AWS SES를 통해 보낸 이메일의 열기 클릭 반송 모니터링 (0) 2023.02.12 [Computer Network] AWS Route53 (dns) 레코드 유형 (0) 2022.12.11 [Computer Network] Http methods & status code (0) 2022.11.06 [Computer Network] URI와 Web Browser (0) 2022.10.30 [Computer Network] 인터넷 통신 (0) 2022.10.30