1. HTTP.
HTTP란?
HTTP는 월드 와이드 웹(www)의 기반이 되는 애플리케이션 계층 프로토콜로, 네트워크 장치 간에 정보를 전송함.
- 웹에서 데이터를 주고 받는
서버-클라이언트 모델의 프로토콜.
- 주로 웹 페이지를 로드하는 데 사용됨.
1-1. HTTP 통신 방법.
- 사용자가 웹사이트를 방문하면 브라우저가 웹 서버로 리소스 요청
-> 해당 요청을 받은 웹 서버는 HTML, CSS와 같은 리소스를 응답함.
- 클라이언트의 요청과 서버의 응답 사이에는 여러 프록시 서버가 있음.
- 프록시 서버는 캐시를 저장하거나 보안을 위해 서버의 IP주소를 숨기는 등 다양한 역할을 함.
- 모든 통신은 안전하게 이뤄지기 위해
TCP(Transmission Control Protocol) 연결을 사용함.
1-2. HTTP 요청.
HTTP 요청은 웹 사이트를 로드하거나 정보를 요청하기 위해 웹 브라우저 등이 서버로 보내는 데이터임.
각 HTTP 요청은 서로 다른 유형의 정보를 전달하는 일련의 인코딩된 데이터를 전달함.
- 요청에는 아래와 같은 것들이 포함됨.
HTTP 버전
URL
HTTP 메서드
HTTP 요청 헤더
- (선택 사항)
HTTP 본문
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept-Language: ko-KR
- 브라우저가 위와 같은
HTTP 요청을 서버로 보냄.
첫 줄에는 HTTP 요청 메서드, URL 경로, HTTP 프로토콜 버전 정보.
두번째 줄부터 HTTP 요청의 헤더.
key:value 쌍으로 이뤄져 있고, 웹사이트 도메인의 호스트, 언어, 사용자의 브라우저 등 서버가 필요한 정보를 전달함.
1-2-1. HTTP 메서드
HTTP 메서드는 HTTP 요청이 서버에서 기대하는 작업을 나타냄.
- 일반적인
Ex로 GET, POST
GET요청은 응답으로 정보를 받음.
POST요청은 일반적으로 클라이언트가 웹 서버에 정보를 보내고 있음을 나타냄.
1-2-2. HTTP 요청 헤더.
HTTP 헤더는 키-값 쌍으로 구성된 텍스트 정보로, 모든 HTTP 요청과 응답에 포함됨.
클라이언트의 브라우저 정보와 요청 데이터와 같은 핵심 정보를 전달합니다.

1-2-3. HTTP 요청 본문.
HTTP 요청 본문에는 웹 서버로 전송되는 정보가 포함됨.
1-3. HTTP 응답.
클라이언트의 HTTP 요청에 대한 서버의 응답.
- 아래와 같은 것들이 포함 되어있음.
HTTP 상태 코드
HTTP 응답 헤더
- (선택 사항)
HTTP 본문
HTTP/1.1 200 OK
Date: Sat, 09 Oct 2023 14:28:02 GMT
Server: Apache
Content-Type: text/html
<html>
...
</html>
- 요청에 문제가 없었다면 서버는 위와 같은 응답을 함.
- 첫 줄에는 HTTP 프로토콜 버전 정보와 HTTP 상태 코드가 있음.
- 둘째 줄부터 key:value 쌍은 모두 헤더임.
- 브라우저가 필요한 정보를 전달해주고, 응답의 Body는 브라우저가 요청한 데이터.
1-3-1. HTTP 상태 코드
| 상태 코드 | 의미 |
|---|
| 1XX | - 정보 제공 |
| 2XX | - 성공 |
| 3XX | - 리다이렉션 |
| 4XX | - 클라이언트 오류 |
| 5XX | - 서버 오류 |
1-3-2. HTTP 응답 헤더.
HTTP 응답에는 본문에서 전송되는 데이터의 언어, 형식 등 중요한 정보를 전달하는 헤더가 함께 제공됨.

1-3-3. HTTP 응답 본문.
- 성공적인 응답에는 요청된 정보가 포함되어 있음.
1-4. 무상태성 프로토콜(stateless protocol).
- 무상태 프로토콜(stateless protocol)은 각 요청을 독립적인 트랜잭션으로 처리하는 통신 방식.
- 서버가 클라이언트의 상태를 보존하지 않음.
- 즉, 이전 요청과 다음 요청이 서로 관련성이 없음.
- 각 요청은 이전 요청과 무관하게 처리됨.
- 서버는 세션 정보나 상태를 저장하지 않음.
1-4-1. 장점.
- 높은 확장성
- 서버를 쉽게 확장할 수 있어 트래픽 증가에 대응하기 용이함.
- 유연성
- 단순성
1-4-2. 단점.
- 데이터 전송량 증가
- 클라이언트는 매 요청마다 필요한 모든 정보를 포함해야됨.
- 상태 유지의 어려움
- 로그인과 같이 사용자의 상태를 유지해야 하는 서비스에서는 무상태 방식을 사용하기 어려움.
2. HTTP, HTTPS의 차이점.
HTTP에서 브라우저와 서버는 데이터를 일반 텍스트로 교환하기 때문에 보안에 취약함.
- HTTP의 이러한 단점을
보완한 것이 HTTPS.
- 브라우저와 서버가 데이터를
전송하기 전에 암호화된 연결을 생성함.
- HTTPS는 모든 요청 및 응답을
SSL(Secure Socket Layer) 및 TLS(Transport Layer Security) 프로토콜에 따라 암호화함.
- 이를 통해 개인정보와 같은 민간한 정보를 보호할 수 있음.
3. Ref