
웹상에서 데이터를 주고받기 위한 프로토콜, Hyperetext Transfer Protocol
주로 웹 문서(HTML)를 주고받기 위하여 사용하는 프로토콜로, 웹 뿐만 아니라 모바일 앱, 게임 개발에서도 다양한 목적으로 사용되곤 한다. 쉽게 설명하자면 웹 브라우저가 서버와 통신하는 규칙이다.
요청
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept-Language: ko-KR
응답
HTTP/1.1 200 OK
Date: Sat, 09 Oct 2023 14:28:02 GMT
Server: Apache
Content-Type: text/html
<html>
...
</html>
| HTTP 메서드 | 설명 | 사용예시 |
|---|---|---|
| GET | 데이터 조회를 요청 | 특정 페이지 접속, 정보 검색 |
| POST | 데이터 생성을 요청 | 회원가입, 글쓰기 |
| PUT | 데이터 수정을 요청 | 회원 정보 수정 |
| DELETE | 데이터 삭제를 요청 | 회원 정보 삭제 |
HTTP 1.1 버전부터 keep-alive를 지원한다
하나의 웹 사이트에 방문하면 대개 수십 개의 파일(css, 이미지, html, js)를 제공한다. TCP 통신 과정에서 연결 수행/연결 해제 과정에서 리소스가 많이 소요된다. keep-alive는 이런 파일을 하나씩 받기 위하여 매번 연결을 맺고 끊는 것을 방지한다. 즉, persist하게 connection을 유지할 수 있도록하여 불필요한 연결의 맺고 끊음을 최소화시켜 네트워크 부하를 줄이는 것이다.
HTTP
브라우저와 서버는 데이터를 일반 텍스트로 교환한다. 데이터를 암호화하지 않고 전송하여 데이터를 탈취 당할 수 있다.
HTTPS
이에 대한 보안을 강화하기 위해 만들어진 것이 HTTPS이다. 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 생성한다. HTTPS는 모든 요청 및 응답을 SSL(Secure Socket Layer) 및 TLS(Transport Layer Security) 프로토콜에 따라 암호화한다.