HTTP

 server client에 대한 이미지 검색결과



-웹 서버상의 다양한 컨텐츠를 이용하기 위해서 클라이언트와 통신을 하게 되는데, 이 때 사용하는 프로토콜이HTTP이다. 

-클라이언트가 서버로HTTPRequest메시지를성공했을 때,서버에서클라이언트로HTTPResponse메시지를보내준다. 



-메시지는 서버를 기준으로 인바운드/아웃바운드 송신된다. 또한 항상 다운스트림으로 요청을 받고 다운스트림으로 응답을 전달한다. 

-웹 서버는 리소스를 기반으로 컨텐츠를 제공하고 관리한다. 리소스는 다양한 형태로 되어있으며, 정적 또는 동적 데이터로 구분할 수 있다. 


MIME

-많은 수의 데이터 타입을 다루기 때문에, 웹 전송 객체에 MIME(MultipurposeInternetMailExtensions)이라는데이터포맷 라벨을 붙인다. 다른 이메일 시스템 사이에서 메시지를 주고받을 때 생기는 문제점을 해결하기 위해 설계되었다. 

-MIME 타입은 /로 구분하고,Primaryobjecttype과Specificsubtype으로이루어진 문자열이다. (ex.Content-type: Text/html,text/plain,image/gif) 

-클라이언트는 웹 서버 리소스를URI를통해 찾아볼 수 있다.

HTTP version

HTTP/1.1: HTTP 설계의 구조적 결함 교정, 성능 최적화, 잘못된 기능 제거, 웹 애플리케이션과 배포 지원이 가능해졌다. 

 

HTTP/2.0: 지연 시간을 줄이고 요청/응답 다중화, 오버헤드 최소화, 요청 우선순위 지정 및 서버 푸시 지원. 서버와 클라이언트 간 데이터 프레임이 지정되는 방식과 전송되는 방식 수정. 전체 프로세스를 관리하며 애플리케이션의 모든 복잡성을 새 프레이밍 계층 내에 숨겨서, 기존 애플리케이션 수정 없이 전달 가능하다. HTTP/1.x 서버 및 클라이언트와는 호환되지 않는 바이너리 프레이밍 계층이라는 것이 도입되어 2.0이 되었다. 프레이밍은 클라이언트와 서버에 의해 자동으로 수행되며 기존과 차이점은 없다. 

 

HTTP/1.1 문제점들

-HTTP Connection 마다 하나의 요청을 처리하도록 설계 되어있어 동시전송이 불가능하고, 요청과 응답이 순차적으로 이루어진다. 따라서 HTTP 문서 내의 다수의 리소스를 처리할 때 리소스 개수에 비례하여 Latency가 길어진다. 이를 Pipelining으로 개선해, connection 당 다수의 파일을 요청/응답 받을 수 있도록 한다. 하지만 이 또한 문제점이 있는데, 여러개의 파일을 요청했을 때 첫 번째 응답이 완료되기 까지 대기하는 HTTP Head Of Line Blocking이 발생한다. 임시방편으로 Image Spriting을 통해 이미지를 한 파일로 묶어두고 좌표값을 통해 읽는 방식으로 해결할 수 있다. 

-Connection 당 하나의 요청 처리로 인해 매 요청마다 connection을 생성하게 되고 3-way handshake의 반복으로 Round Trip Time 증가와 네트워크 지연을 초래한다. 

-마찬가지로 매 요청 마다 중복된 헤더값을 전송하게 된다. 


WEB 구성 요소

- 프록시는 서버와 클라이언트 중간에서 요청을 수집하고 필터링하여 서버로 전달하는 보안 중개자 역할을 한다. 

- 게이트웨이는 서로 다른 프로토콜을 사용하는 클라이언트와 서버 사이에서 변환하는 역할을 한다. 

- 터널: RAW 데이터를 그대로 전달해주는 HTTP 애플리케이션으로, SSL 트래픽을 HTTP 채널을 통해 서버로 전송하는 방식이다. 

- 에이전트: HTTP 요청을 만들어주는 클라이언트 프로그램 



ref: http://www.google.com (all images)

'System Engineering > Network' 카테고리의 다른 글

TCP/IP - 1. TCP  (0) 2018.07.10
HTTP - 2. Message  (0) 2018.07.06
Protocol: TCP and UDP  (0) 2018.06.18
About https  (0) 2018.06.11
HAProxy – 오픈 소스 로드 밸런서  (0) 2018.05.24

+ Recent posts