1. HTTP란?
2. HTTP의 특징
HTTP란?
: HyperText Transfer Protocol의 약자로, 텍스트 기반의 통신 규약.
즉, 인터넷에서 데이터를 웹 브라우저와 웹 서버간에 주고받을 수 있는 프로토콜(규칙)을 말한다. HTTP는 정보를 텍스트로 주고 받기 때문에 네트워크에서 전송 신호를 인터셉트 하는 경우 원하는 않는 데이터 유출이 발생할 수 있다.
이러한 보안 취약점을 해결하기 위한 프로토콜 HTTPS다. HTTP에 S(Secure Socket)가 추가된 것으로, HTTPS는 기본 골격이나 사용 목적 등은 HTTP와 거의 동일하지만, 데이터를 주고 받는 과정에 보안요소가 추가되었다는 것이 가장 큰 차이점이다. HTTPS를 사용하면 서버와 클라이언트 사이의 모든 통신 내용이 암호화된다.
HTTP의 특징
1. 요청/응답(Request/Response) 방식으로 동작한다.
사용자가 브라우저에 URL을 입력하면 HTTP 표준에 따라 URL을 요청 메세지로 변환하고 TCP/IP를 사용하여 인터넷을 통해 요청을 보낸다. 웹 서버는 요청(Request)을 수신하고 클라이언트가 요청한 웹 페이지를 응답(Response)한다.
*TCP/IP란?
TCP : Transmission Control Protocol의 약자로 서버와 클라이언트 간에 데이터를 신뢰성있게 전달하기 위해 만들어진 프로토콜
IP : Internet Protocol의 약자로 컴퓨터들의 네트워크 상에서 서로를 구별하기 위한 주소
2. 연결 상태를 유지하지 않는 비연결성 프로토콜이다. (Connectionless 프로토콜)
비연결성은 클라이언트와 서버가 한번 연결을 맺은 후, 클라이언트 요청에 대해 서버가 응답을 마치면 맺었던 연결을 끊어버리는 성질을 말한다. 계속 연결을 맺는 것이 아니라, 필요한 경우에만 맺고 보통 빠르게 요청을 보내고 응답을 받은 후에 연결을 끊게 된다.
연결을 끊는 이유는, 만약 서버에서 불특정 다수의 클라이언트와 연결을 계속 유지해야 한다면, 이에 따른 많은 리소스가 발생하게 되는데, 연결을 유지하기 위한 리소스를 줄여 더 많은 연결을 하기 위해 비연결성 특징을 갖는다.
3. 연결 해제 후에 상태정보가 저장되지 않는다. (Stateless 프로토콜)
비연결성이라는 특징때문에 서버는 클라이언트를 식별할 수 없다. 클라이언트의 상태를 모르면 해당 사용자의 인증 여부를 확인할 수 없으므로 사용자 입장에서 굉장히 귀찮아진다. 예를 들어, 쇼핑몰을 이용할 때 페이지를 이동할 때마다 사이트에서 로그인을 요구할 것이다.
4. KeepAlive
비연결성으로 인해 서버는 클라이언트를 기억하고 있지 않으므로 동일한 클라이언트의 모든 요청에 대해, 매번 새로운 연결을 시도/해제하는 과정을 거쳐야하므로 이에 대한 오버헤드가 발생한다. 따라서 이에 대한 해결책으로 오버헤드를 줄이기 위해 HTTP의 KeepAlive 속성을 사용할 수 있다. KeepAlive는 지정된 시간동안 서버와 클라이언트 사이에서 패킷 교환이 없을 경우, 상대방의 안부를 묻기 위해 패킷을 주기적으로 보내는 것을 말한다. 이때 패킷에 반응이 없으면 접속을 끊게 된다.
*오버헤드 : 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간, 메모리 등을 말한다.
'WEB' 카테고리의 다른 글
쿠키(Cookie), 세션(Session)의 특징 및 차이점 (0) | 2023.08.22 |
---|---|
HTTP 상태코드 종류와 의미 (0) | 2023.08.04 |
HTTP 메소드 종류 정리 / GET vs POST 차이점 (0) | 2023.08.03 |
[백엔드] Rest API / Restful API 이해하기 (0) | 2023.08.01 |