HTTP(HyperText Transfer Protocol)는 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜이다. 사용자가 웹 사이트를 방문하면 사용자 브라우저가 웹 서버에 HTTP요청을 전송하고 웹서버는 HTTP응답으로 응답한다. 웹 서버와 사용자 브라우저는 데이터를 일반 텍스트로 교환한다. 웹 페이지의 요청과 응답을 처리하는데 사용된다.
HTTP는 1989년에 팀 버너스리(Tim Berners-Lee)에 의해 제안된 개념이며 웹 브라우저와 웹 서버 간의 통신을 위한 프로토콜로 HTTP를 개발했다.
팀 버너스리는 CERN에서 작업중인 팀과 같이 1989년 월드와이드웹의 하이퍼텍스트 시스템을 고안하여 개발했다. 인터넷의 기반을 닦은 여러 공로로 웹의 아버지라고 불린다.
초기 버전으로는 HTTP/0.9초기 버전으로, 단순한 요청과 응답을 위한 프로토콜이었다. HTTP헤더와 버전 번호를 포함하지 않았으며 HTML문서만을 전송할 수 있었다.
1996년에 발표된 첫 번째 공식 표준 버전인 HTTP/1.0은 헤더, 상태코드, 여러 리소스 지원, 가상 호스팅등의 개념이 도입되었으며,
그 다음 버전으로 지금까지 가장 널리 쓰이즌 HTTP/1.1버전은 1997년도에 발표되었으며, Kepp-Alive연결, 지속적인 연결, 파이브라인화 등의 개선이 도입되었으며, 뛰어난 성능과 효율성이 향상되었다.
그 이후로 HTTP/2 - 3이 발표되었지만 이전 버전과 비교하여 성능과 보안 측면에서의 개선만 이루어 졌으며, 헤더 압축, 서버푸시, 스트림 등의 기능이 추가 되었다.
1990년대 초반에 웹이 사용화 되면서 HTTP의 중요성이 부각되었는데, 웹의 보급으로 HTTP는 인터넷에서 가장 중요한 프로토콜 중 하나가 되었다.
HTTPS는 우리가 알게 모르게 사용중인데 이 개념은 1994년에 보안상의 이유로 HyperText Transfer Protocol Secure 가 등장했다. SSL (Secure Sockets Layer) 또는 TLS(Transport Layer Sercurity)프로토콜을 사용하여 데이터 암호화를 제공하는 방식이다.
2000년대에는 REST(Representational State Transfer)아키텍쳐가 등장했는데 REST는 HTTP를 기반으로 한 웹 서비스 구축을 위한 아키텍쳐 스타일로, 웹 API 개발에 많이 사용된다.
이렇게 전 세계적으로 널리사용되고 있는 HTTP프로토콜이지만 취약점도 물론 존재했는데
1990년대 말부터 2000년대 초반에 걸쳐, 악의적인 사용자들은 HTTP요청에 악성 헤더를 삽입하여 보안 취약점을 이용하는 시도를 했다.
크리고 쿠키 및 세션 하이재킹 공격이 있었는데 세션 쿠키를 훔쳐 사용자의 계정을 탈취하거나 세션을 위조하여 인증 절차를 우회, 그리고 지금까지도 문제로 떠오르고 있는 HTTP대량 요청인 웹 서버에 대량의 HTTP요청을 보내 서버의 자원을 고갈 시키는 공격인 DDOS(Distributed Denial-of-Service)가 발생되었다. 이로 인해 서비스 중단 및 서버의 다운 타임 문제들이 발생이 되었다.
'CS' 카테고리의 다른 글
네트워크의 간단한 개념 (0) | 2023.06.08 |
---|---|
CI / CD (0) | 2023.06.08 |
알고리즘 (0) | 2023.06.07 |
2진법 (0) | 2023.06.07 |
불리언대수와 드모르간의 법칙 (0) | 2023.06.03 |
댓글