하이퍼텍스트를 빠르게 교환하기 위한 프로토콜의 일종.
서버와 클라이언트 사이에서 어떻게 메시지를 교환할지 정해놓은 규칙.
요청(Request)과 응답(Response)으로 구성되어있으며, 일반적으로 80번 포트를 사용한다.
웹 브라우저에서 인터넷 주소 맨 앞에 들어가는 http://
가 바로 이 프로토콜을 사용해서 정보를 교환하겠다는 표시이다.
책을 비롯한 기존 인쇄물의 경우, 한 문서에서 다른 문서로 넘어가는 과정이 선형적으로 이루어진다. (페이지를 넘기는 등의 작업이 필연적으로 이루어짐.) 하이퍼텍스트는 이런 기존의 텍스트와 달리, 하이퍼링크를 통해 각 텍스트가 비선형적으로 연결된다.
예를 들어 이 블로그의 [TIL] useEffect와 useLayoutEffect의 차이 게시글로 이동하고 싶을 때, 굳이 목록으로 돌아가 해당 게시글을 찾을 필요 없이 연결된 하이퍼링크를 클릭하면 모든 작업을 건너뛰고 바로 이동할 수 있다.
사용자 컴퓨터와 방문한 사이트 간에 전송되는 사용자 데이터의 무결성과 기밀성을 유지할 수 있게 해주는 인터넷 통신 프로토콜
TLS를 사용해 암호화된 연결을 하는 HTTP를 말한다. 웹사이트 주소는 http://
가 아닌 https://
로 시작되며, 포트 또한 80이 아닌 443번을 사용한다.
HTTPS와 달리 암호화되지 않은 HTTP 방식의 경우 중간자 공격, 도청의 가능성이 높아 위험하다.
SSL(Secure Sockets Layer, 보안 소켓 계층)
TLS(Transport Layer Security, 전송 계층 보안)
클라이언트에서 서버로 메세지를 전송한다. 핸드셰이크의 시작으로, 이 메세지에 TLS 버전, 암호화 알고리즘, 무작위 바이트 문자열이 포함된다.
서버에서 클라이언트로 메세지를 전송한다. 클라이언트 메세지에 대한 응답으로, 서버의 SSL 인증서, 선택한 암호화 알고리즘, 서버에서 생성한 무작위 바이트 문자열이 포함된다.
클라이언트가 서버의 SSL 인증서를 인증 발행 기관에 검증한다.
클라이언트는 무작위 바이트 문자열을 공개 키로 암호화된 pre-master secret key를 서버로 전송한다.
서버가 pre-master secret key를 개인 키를 통해 복호화한다.
클라이언트와 서버는 클라이언트가 생성한 무작위 키, 서버가 생성한 무작위 키, pre-master secret 키를 통해 세션 키를 생성한다. 양쪽 모두 같은 키가 생성되어야 한다.
클라이언트는 세션 키로 암호화된 완료 메세지를 전송한다.
서버 역시 암호화된 완료 메세지를 전송한다.
핸드셰이크가 완료되고, 세션 키를 사용해 통신을 진행한다.