tv를 살 때, 볼 때 그냥 화면이 크고 소리나 화면이 잘 나오고 고장이 잘 안나고 그거면 충분하다. 아무도 어떤 방식으로 tv가 소리나 화면을 출력해주는지 관심이 없다. 너무 익숙해 졌기 때문이다. 마찬가지로 굉장히 빈번하게 사용하고 있고 또 없어서는 안되는 HTTP 프로토콜
이 어떤 원리로 동작하는지 알아보았다.
HTTP
(HyperText Transfer Protocol)는 W3(World Wide Web)상에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다. 주로 TCP를 사용하고 HTTP/3 부터는 UDP를 사용하며, 80번 포트를 사용한다. 1996년 버전 1.0, 그리고 1999년 1.1이 각각 발표되었다. HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. HTTP를 통해 전달되는 자료는 http:로 시작하는 URL(인터넷 주소)로 조회할 수 있다. 참고
클라이언트와 서버가 한 번 연결을 맺은 후, 클라이언트 요청에 대해 서버가 응답을 마치면 연결을 끊어 버리는 성질
비연결성
의 장점HTTP
는 인터넷 상에서 불특정 다수의 통신 환경을 기반으로 설계 되었다. 다수의 클라이언트와 계속 연결을 유지한다면, 많은 리소스가 발생하기 때문에 연결 유지를 위한 리소스를 줄이기 위해 비연결적인 성질을 가진다. 비연결성을 가짐으로써 불필요한 리소스를 줄여 더 많은 클라이언트의 요청을 처리할 수 있는 장점이 있다.비연결성
의 단점비연결성
때문에 동일한 클라이언트의 모든 요청에 대해서 매번 새로운 연결시도 - 연결해제의 과정을 거치므로 이에 대한 오버헤드가 발생한다는 단점이 있다.KeepAlive
속성을 사용 할 수 있다. KeepAlive
는 지정된 시간동안 서버와 클라이언트 사이에서 패킷 교환이 없을 경우, 주기적으로 패킷을 보내 상태를 체크하는 속성이다. 하지만 이 역시 서버가 바쁜 환경에서는 KeepAlive
로 상태를 유지하기 위한 메모리를 많이 사용하게 되므로 완벽한 해결책은 아니다.2-1의 비연결성
으로 인해 클라이언트의 요청이 끝날 때 마다 연결이 끊기므로 서버가 클라이언트를 식별 할 수 없는 성질이다. 예를 들어 어떤 웹 페이지에서 로그인을 한 후 다른 페이지로 이동할 때 마다 로그인이 계속 풀리게 된다.
무상태성
의 장점무상태성
의 단점나는 보통 자주 사용하는 웹사이트들의 주소를 외워서 직접 타이핑하는 편이라서 http를 하루에도 수십번씩 타이핑했다. 평소 컴퓨터를 사용하면서 http, ftp, mailto 이런 것들을 사용하면서 어렴풋이 어떤 파일명 뒤에 붙는 확장자 같은 개념으로 생각했는데, 특징만 알아보았는데도 머리가 아플정도로 생각보다 훨씬 더 커다란 개념이었다. HTTP Request Message와 HTTP Response Message의 구조나 Method들, 그리고 HTTP의 기반인 tcp/ip 까지 공부할게 아주 많이 남았다. 그래도 이번에 공부하면서 대략적인 개념을 알게 된 것 같아서 재밌었다.