HTTP란
HTTP는 인터넷에서 데이터를 주고받을 수 있는 프로토콜입니다. 풀 네임은 하이퍼텍스트 전송 프로토콜(Hyper Text Transfer Protocol)입니다. HTTP는 여러 가지의 단어로 설명될 수 있습니다. 하이퍼텍스트라는 이름이 붙어 있지만 오늘날 하이퍼텍스트뿐만 아니라 이미지와 비디오 혹은 HTML 폼 결과 같은 웹에서 이루어지는 모든 데이터를 주고받을 수 있는 프로토콜입니다. 다르게 설명하자면 HTTP는 클라이언트와 서버 사이에 이루어지는 요청과 응답의 프로토콜입니다. 또한 HTTP는 무 상태 프로토콜이며, 네트워크 관련 종사자들은 일반적으로 안정적인 TCP/IP 레이어를 기반으로 사용하는 애플리케이션 프로토콜이라고 생각할 것입니다.
HTTP의 비 연결성
HTTP의 특징 중 하나는 비 연결성입니다. 먼저 앞서 설명했듯이 클라이언트와 서버라는 구조로 데이터를 서로 주고받는 형태를 띠고 있습니다. 클라이언트라는 웹브라우저에서 웹서버로 데이터를 요청할 수 있으며, 서버에서 응답이 올 때까지 대기합니다. 그리고 서버는 클라이언트에서 전송한 요청에 대한 결과를 만들어 응답합니다. 비 연결성은 이 요청 후에 연결을 끊는다는 것입니다. HTTP는 클라이언트와 서버가 한 번 연결을 맺은 후에 클라이언트 요청에 대하여 서버가 응답을 마치면 맺었던 연결을 끊어버리는 성질을 가집니다. 이러한 비 연결성을 통하여 얻을 수 있는 장점은 더 많은 연결을 하기 위함입니다. HTTP는 인터넷상에서 불특정 다수의 통신 환경을 기반으로 설계되었습니다. 만약 연결을 끊지 않는다면 하나의 서버가 수많은 클라이언트와 연결되어 있어야 하게 될 것이며, 이것을 계속 유지한다는 것은 많은 자원이 필요하며 감당할 수 없는 한계 이상은 사용되지 못할 것입니다. 그러므로 더 많은 연결을 위하여 연결을 끊는 특징을 가지게 되었습니다. 물론 이러한 방법도 완벽한 해결책은 아닙니다. 서버는 클라이언트를 기억하지 못하기 때문에 동일한 클라이언트의 요청을 매번 새롭게 연결을 시도하고 끊어야 하는 작업을 거쳐야 하는 단점을 가집니다.
HTTP의 무 상태
HTTP의 두 번째 특징은 무 상태 프로토콜입니다. HTTP에서 서버가 클라이언트의 상태를 보존하지 않는 무 상태 프로토콜입니다. 간단하게 설명하면 클라이언트의 이전 상태를 서버는 기억하지 못한다는 것이며, 클라이언트에서 어떠한 순서가 필요한 요청을 하나씩 서버로 보냈을 때 서버는 이전 상태를 보존하고 있지 않기 때문에 어떤 독립적인 요청이 여러 번 전송되었다고 생각하고 데이터를 처리합니다. 이러한 성질로 인하여 클라이언트 입장에서는 서버가 여러 대가 있을 때 요청이 어떠한 서버로 전송이 되어도 상관이 없습니다. 서버 입장에서는 수많은 클라이언트 요청이 왔을 때 이전에 요청받았던 서버가 아니어도 되기 때문에 서버를 증설하는 스케일 아웃으로 문제를 쉽게 해결할 수 있습니다.
'IT' 카테고리의 다른 글
자바스크립트에 대하여 (0) | 2022.12.30 |
---|---|
Node.Js에 대하여 (0) | 2022.12.28 |
운영체제에 대하여 (0) | 2022.12.28 |
인증(Authentication)과 인가(Authorization)에 대하여 (0) | 2022.12.27 |
클라우드 컴퓨팅의 정의와 종류 (0) | 2022.12.16 |
댓글