통신
구글 크롬의 병렬커넥트와 지속 커넥트 활용 구클 크롬으로 내가 만든 사이트를 분석하고 있었고 해당 부분을 보고 지난번에 공부했던 지속 커넥트와, 병렬 커넥트를 직접 눈으로 보아 정리를 해봅니다. 구글 개발자 도구 퍼포먼스 탭 아래 이미지를 보면 브라우저에서 html을 읽고 필요한 데이터를 요청하는데 최대 6개를 동시에 요청하는 것을 볼 수 있었습니다. 이를 통해 크롬 브라우저는 웹사이트의 리소스를 빠르게 가져오기 위한 방식인 병렬 커넥트를 활용했다는 것을 알 수 있었고 한 페이지당 기본 6개의 커넥션을 맺는다는 것을 알 수 있었습니다. 그리고 이어서 header.js는 어느 특정 리소스를 받자마자 바로 요청을 합니다. 이부분이 지속 커넥트를 활용한 데이터 요청이라고 생각했고 와이어샤크로 분석했습니다. 와..
HTTP 완벽 가이드의 일부를 정리한 내용이다. 1. 순차 커넥션, 병렬 커넥션, 지속 커넥션 순차 커넥션 가장 기본적인 방법이다. 한 커넥션당 하나의 요청을 처리하는 방법이다. 각 요청당 TCP를 구성하고 종료하는데 시간이 필요하다. 이는 순차적인 처리로 인하여 생기는 지연이다. 이 말고도 각 요청마다 TCP 커넥션을 새로 맺음으로써 TCP slow start 기능에 의한 지연이 발생할 수 도 있다. 병렬(Parallel) 커넥션 병렬 커넥션은 순차커넥션의 TCP를 구성하여 생기는 지연을 개선하고자 생긴 개념이다. 여러 커넥션을 만들어서 각각 요청을 전송하는 방법이다. 이렇게되면 TCP 구성 지연이 중첩되서 진행되므로 TCP구성 지연을 줄일 수 있는 장점이 있다. 하지만 이는 커넥션을 여러개 맺는다는 ..
아래 내용은 HTTP 완벽 가이드 4장 내용을 일부 정리한 것. 1. TCP 커넥션의 헨드쉐이크 설정 크기가 작은 http 트랜잭션은 처리 시간의 50%이상이 TCP를 구성하는데 사용된다. 이를 TCP 구성으로 인한 지연 이라한다. 2. 인터넷의 혼잡을 제어하기 위한 TCP의 느린 시작(slow start) TCP 커넥션이 만들어진 지 얼마나 지났는지에 따라 TCP의 데이터 전송 속도는 달라질 수 있다. 혼잡제어 알고리즘에 의해 TCP는 시간이 지남으로써 `튜닝` 되어 진다. 처음에는 커넥션의 최대 속도를 제한하고 데이터가 성공적으로 전송됨에 따라서 속도 제한을 높여나간다. (한번에 전송할 데이터 량을 조절함으로써 속도를 제한하는 것) 이렇게 조율하는 것을 TCP slow start 라 한다. 패킷을 주..
https://tools.ietf.org/html/rfc2616 을 읽고 HTTP 1.0과 다른점에 대해서 알아봅시다. 1 Introduction 1.1 Purpose HTTP/0.9 원래 데이터(raw data)를 전송하기 위한 단순한 프로토콜입니다. HTTP/1.0 전송되는 문서 데이터에 대한 메타 정보 추가, 요청/응답를 포함하는 MIME과 유사한 메시지의 형식으로 사용 가능하게 프로토콜 확장했지만 계층적 프록시, 캐시, 지속적인 연결의 필요성 및 가상 호스트 등의 영향을 충분히 고려하지 않았습니다. MIME 다용도 인터넷 메일 확장 1.2 Requirements (pass) 1.3 Terminology http 1.0에 없는 것들만 적겠습니다. content negotiation 내용 협상 요청을..
https://tools.ietf.org/html/draft-ietf-http-v10-spec-04 문서를 읽고 정리해보았습니다. 한글 번역본 http://www.deadfire.net/web/HTTP10.htm 1. Introduction 소개 1.1 Purpose 목적 HTTP 프로토콜은 SMTP, NNTP, FTP, Gopher, WAIS와 같은 애플리케이션 계층의 프로토콜입니다. 브라우저와 프록시 혹은 게이트웨이 사이의 통신을 위한 프로토콜입니다. 요청에 목적을 나타내기 위해서 URI를 바탕으로 만들어집니다. 1.2 Terminology 용어 HTTP 통신에 요청자와 응답자가 수행하는 기능을 지칭하기 위해서 사용하는 용어를 설명합니다. connection 연결 두 개의 어플리케이션 프로그램의 통신..