HTTP: 인터넷상에서 데이터를 전송하기 위한 프로토콜
*특징
1. 비연결성(connectionless)
: 클라이언트에서 요청을 보낸 후 서버로부터 응답을 받으면 연결을 끊는 것
장점) 불특정 다수를 대상으로 하는 서비스에 유리하며 그로인해 자원을 아낄 수 있음
단점) 서버가 클라이언트를 기억할 수 없음, 동일 클라이언트에 연결 해제 과정을 반복하여 자원이 낭비될 수 있음
=> HTTP Keep Alive 연결 사용
: HTTP 연결 시 일정 시간 동안 요청을 유지할 수 있도록 사용하는 HTTP 헤더의 일
2. 무상태(stateless)
: 서버에서 클라이언트의 상태를 저장하는 않는 것. 따라서 클라이언트는 요청에 필요한 데이터를 모두 가지고 있어야 함 (쿠키) 혹은 서버가 클라이언트로부터 받은 요청 사항을 모두 저장해야 함 (세션)
장점) 서버 확장성이 높음 (클라이언트의 요청에 응답하는 서버가 바뀌어도 되기 때문)

HTTP에서는 클라이언트와 서버가 통신하기 위해 정형화된 데이터인 HTTP 메시지를 주고받음
*HTTP 메시지의 구조
- 요청 라인(request line): 요청 URI, 요청 방법, HTTP 버전 등을 포함
- 상태 라인(status line): 요청에 대한 HTTP 상태 코드와 HTTP 버전을 포함
- 헤더(header): 키-값으로 구성된 다수의 헤더 항목으로 구성됨
- 빈 줄(blank line): 헤더의 끝을 나타내는 빈 줄로, 헤더와 바디를 구분함
- 바디(body): 요청할 때 요청 방법 메서드가 POST인 경우에만 바디가 있고, 그 외 메서드일 때는 비어 있음
*HTTP 주요 상태 코드
| 상태 코드 | 의미 | 분류 |
| 200 | 클라이언트 요청을 성공적으로 처리함 | 요청 성공 |
| 401 | 인증되지 않음 | 클라이언트 오류 |
| 403 | 접근 실패 | |
| 404 | 클라이언트에서 요청한 자원을 찾지 못함 | |
| 500 | 서버 내부 오류 발생 | 서버 오류 |
'공부 기록 > CS' 카테고리의 다른 글
| 2.4 REST (0) | 2024.07.24 |
|---|---|
| 2.3 HTTPS (1) | 2024.07.23 |
| 2.2 TCP와 UDP (2) (0) | 2024.07.19 |
| 2.2 TCP와 UDP (1) (0) | 2024.07.18 |
| 2.1 네트워크 계층 (0) | 2024.07.17 |