1. HTTP
ㅇ 웹 상에서 웹 서버 및 웹브라우저 상호 간의 데이터 전송을 위한 응용계층 프로토콜
- 처음에는, WWW 상의 하이퍼텍스트 형태의 문서를 전달하는데 주로 이용
- 현재에는, 이미지,비디오,오디오 등 거의 모든 형식의 데이터 전송 가능
2. HTTP의 특징
ㅇ 요청 및 응답 메세지로 대응되는 구조
- 동작형태가 클라이언트/서버 모델로 동작
ㅇ 메세지 교환 형태의 프로토콜
- 클라이언트와 서버 간에 `HTTP 메세지`를 주고받으며 통신
. SMTP 전자메일 프로토콜과 유사 ☞ 메일 메세지 포멧, MIME 참조
* [참고] HTTP 메세지의 구성 형태
. HTTP의 응답 및 요청 메세지 구성 ☞ HTTP 메세지(HTTP Message) 참조
.. HTTP 요청 메세지 (HTTP 요청 메소드 : GET, POST, HEAD, PUT, CONNECT, LINK 등)
.. HTTP 응답 메세지 (HTTP 응답 코드 : 1xx, 2xx, 3xx, 4xx, 5xx 등)
. HTTP 메세지 내 헤더 ☞ HTTP 헤더 참조
.. (헤더 종류 : 요청 헤더, 응답 헤더, 일반 헤더 등)
. HTTP 메세지 내 헤더 항목들의 구분 ☞ HTTP 헤더 항목 참조
.. (헤더 항목 : Host, From, Cookie, Referer, User-Agent 등)
ㅇ 트랜잭션 중심의 비연결성 프로토콜
- 종단간 연결이 없음 (Connectionless)
- 이전의 상태를 유지하지 않음 (Stateless)
ㅇ 수송계층 프로토콜 및 사용 포트 번호 ☞ TCP, 포트번호, 잘알려진 포트번호 참조
- 수송계층 프로토콜 : TCP
- 사용 포트 번호 : 80번
3. HTTP의 표준 / 역사
※ ☞ HTTP 버전 (HTTP 표준) 참조
- HTTP 0.9 : 차후 정식 버전과 구분하기 위해 HTTP/0.9로 불리움 (1990년경)
- HTTP 1.0 : 유용한 초기 개념들 도입 (1996년)
. HTTP 헤더, HTTP 메서드, HTTP 응답 코드, 리다이렉트, 비지속 연결(non-persistent) 등
- HTTP 1.1 : HTTP 1.0 으로부터 기능 향상
. RFC 2068 (1997년) => RFC 2616 (1999년) => RFC 7230~7235 (1998년~)
- HTTP 2 : SPDY 기반 (2015)
- HTTP 3 : HTTP 2 업그레이드 버전 (2020 ~)
4. HTTP의 인증, 보안
ㅇ HTTP 인증 방식
- 자체 인증 방식 : Basic 인증 및 Digest 인증
- 기타 인증 방식 : 별도의 인증 모듈을 사용하여 직접 구현 (복잡하지만 보안성 강화됨)
ㅇ HTTP 보안 버전 : HTTPS (Secure Hypertext Transfer Protocol)
- 도청, 통신 상대방 위장, 임의 내용 변경 등 방지
. SSL/TLS 등 다른 프로토콜들을 조합시켜 통신 내용을 암호화시킴
5. HTTP의 중계
ㅇ 프록시
- 역할 : 다른 사람을 대신하여 무엇인가를 하는 것 (중개자)
- 위치 : 클라이언트와 서버 사이에 위치
- 특징 : 동일 프로토콜로 연결
- 용도 : 캐싱, 영역 내 특정 웹사이트 접근 방지, 엑세스 로그 획득 등
ㅇ 게이트웨이
- 역할 : 프록시 처럼 중계 역할을 하나, HTTP 프로토콜 이외 기능 수행 (프로토콜 변환 등)
- 특징 : 서로다른 프로토콜 간을 변환해주며 연결
- 참고 : CGI 등
ㅇ 릴레이 : 단순 프록시 (단순 중계)