브라우저에서 최대 병렬 http 연결?
HTTP 서버 (comet, reverse ajax 등)에 대한 일시 중단 된 연결을 만들고 있습니다. 정상적으로 작동하지만 브라우저가 주어진 도메인에 대한 일시 중단 된 연결을 두 번만 허용한다는 것을 알았습니다. 따라서 사용자가 브라우저의 Tab1에서 내 웹 사이트를보고있는 경우 Tab2에서도 웹 사이트를로드하려고 시도하면 내 사이트에 대해 허용 된 두 연결을 모두 사용했습니다.
내 와일드 카드 도메인 작업을 수행 할 수 있다고 생각합니다. http 서버에서 다음과 같이 내 사이트의 주소를 확인합니다.
*.example.com/webapp -> 192.0.2.1 (the actual ip of my server)
그래서:
a.example.com/webapp
b.example.com/webapp
c.example.com/webapp
모두 여전히 ( www.example.com/webapp
)을 가리 키지 만 브라우저는 서로 다른 도메인을 고려하므로 2 개의 연결 제한에 빠지지 않습니다. 이것이 사실입니까?
심지어 그 경우 입니다 사실 - 브라우저 당 활성 연결의 수에 대한 제한은 모든 도메인에 걸쳐있다? 위의 구성표를 사용한다고 가정 해보십시오. 예를 들어 Firefox는 주어진 시간에 24 개의 병렬 연결 만 허용합니까? 다음과 같은 것 :
1) a.example.com/webapp
2) www.download.example/hugefile.zip
3) b.example.com/webapp
4) c.example.com/webapp
...
24) x.example.com/webapp
25) // Error - all 24 possible connections currently in use!
방금 24 개의 연결 / Firefox를 선택했습니다.
최대 서버 / 프록시 당 기본 동시 영구 연결 수 :
Firefox 2: 2
Firefox 3+: 6
Opera 9.26: 4
Opera 12: 6
Safari 3: 4
Safari 5: 6
IE 7: 2
IE 8: 6
IE 10: 8
Chrome: 6
제한은 서버 / 프록시 당이므로 와일드 카드 체계가 작동합니다.
참고로, 이는 HTTP 1.1과 관련이 있습니다. 다른 프로토콜에는 별도의 우려와 제한이 있습니다 (예 : SPDY, TLS, HTTP 2).
HTTP / 1.1
IE 6 and 7: 2
IE 8: 6
IE 9: 6
IE 10: 8
IE 11: 8
Firefox 2: 2
Firefox 3: 6
Firefox 4 to 46: 6
Opera 9.63: 4
Opera 10: 8
Opera 11 and 12: 6
Chrome 1 and 2: 6
Chrome 3: 4
Chrome 4 to 23: 6
Safari 3 and 4: 4
출처 : http://p2p.wrox.com/book-professional-website-performance-optimizing-front-end-back-end-705/
HTTP / 2 (SPDY)
Multiplexed support(one single TCP connection for all requests)
BrowserVersion | ConnectionsPerHostname | MaxConnections
----------------------------------------------------------
Chrome34/32 | 6 | 10
IE9 | 6 | 35
IE10 | 8 | 17
IE11 | 13 | 17
Firefox27/26 | 6 | 17
Safari7.0.1 | 6 | 17
Android4 | 6 | 17
ChromeMobile18 | 6 | 16
IE Mobile9 | 6 | 60
첫 번째 값은 ConnectionsPerHostname 이고 두 번째 값은 MaxConnections 입니다.
출처 : http://www.browserscope.org/?category=network&v=top
참고 : ConnectionsPerHostname 은 브라우저가 동일한 도메인에 대해 수행 할 최대 동시 http 요청 수입니다. 동시 연결 수를 늘리기 위해 다른 도메인에서 리소스 (예 : 이미지)를 호스팅 할 수 있습니다. 그러나 MaxConnections를 초과 할 수는 없습니다 . 즉, 모든 도메인에서 브라우저가 전체적으로 열리는 최대 연결 수입니다.
다양한 브라우저에는 호스트 이름 당 최대 연결 수에 대한 다양한 제한이 있습니다. http://www.browserscope.org/?category=network 에서 정확한 숫자를 찾을 수 있으며 여기에는 웹 성능 전문가 Steve Souders의 연결 제한에 대한 흥미로운 기사가 있습니다. http://www.stevesouders.com/blog/2008/ 03 / 20 / 라운드 업-병렬 연결 /
Firefox는이 설정에 해당 번호를 저장합니다 (에서 찾을 수 있음 about:config
).network.http.max-connections-per-server
최대 연결의 경우 Firefox는이 설정에 다음을 저장합니다. network.http.max-connections
페이지에서 테스트를 하면서이 동작을 보았습니다.
Safari 4: 6
Chrome 6: 7
FF 4: 6
편집 : 파이어 폭스 4는 15 개의 연결을 수행 할 수 있어야하지만 그것은 내가 본 행동이 아닙니다.
2 개의 동시 요청은 많은 브라우저 디자인에서 의도적 인 부분입니다. "좋은 http 클라이언트"가 의도적으로 준수한다는 표준이 있습니다. 이 RFC 를 확인하여 이유를 확인하십시오.
about:config
GNU / Linux (Ubuntu)의 Firefox 33을 보고 검색 한 connections
결과 :
network.http.max-connections : 256
모든 도메인에서 브라우저 당 활성 연결 수에 제한이 있는 부분에 대한 답이 될 수 있습니다.
network.http.max-persistent-connections-per-proxy : 32
서버 당 네트워크 : http.max-persistent-connections : 6
두 속성을 건너 뛰었습니다 ...
network.websocket.max- 연결 수 : 200
(흥미로운 것은 서버 당 제한되지 않지만 전역 http 연결보다 기본값이 낮은 것 같습니다)
각 브라우저마다 고유 한 구성이 있으며이 구성이 변경 될 수 있으므로 이에 대한 명확한 대답은 없습니다. 인터넷에서 검색하면이 제한을 변경할 수있는 방법을 찾을 수 있습니다 (보통 "성능 향상 방법"으로 표시되어 있음). 웹 사이트에 필요한 경우 사용자에게 조언하는 것이 좋습니다.
- 예, 와일드 카드 도메인이 적합합니다.
- 연결 제한이 없습니다. 브라우저에 따라 다를 수 있습니다.
서버 당 브라우저의 최대 연결을 과도한 수로 늘리면 (일부 사이트에서 알 수 있듯이) 서버에서 총 동시 연결을 제한하는 호스팅 계획으로 소규모 사이트에서 다른 사용자를 잠글 수 있습니다.
클라이언트 측에서는 연결 제한을 변경할 수 없다는 것을 알고 있습니다. 서버에서 연결 제한을 변경해야 효과가 있습니다. 기본적으로 많은 서버는 고유 한 클라이언트 당 2 개의 연결 만 허용합니다.
클라이언트는 브라우저가 아니며 TCP / IP 요청을 발행하는 클라이언트 시스템입니다.
이 효과를 매우 명확하게 보려면 JMeter와 같은 것을 사용하여 서버 호스트에 많은 웹 서비스 호출을 시작하십시오. 처음 두 개를 수락하고 두 개 중 하나가 완료 될 때까지 다른 서비스를 수락하지 않습니다. 이것에 대한 놀라운 점은 SOA 상점의 경우 매우 중요하지만 실제로는 거의 아무도 알지 못한다는 것입니다.
참고 URL : https://stackoverflow.com/questions/985431/max-parallel-http-connections-in-a-browser
도와주세요.
'development' 카테고리의 다른 글
Android : 확장 / 축소 애니메이션 (0) | 2020.02.18 |
---|---|
DOM parentNode와 parentElement의 차이점 (0) | 2020.02.18 |
확인 된 예외에 대한 사례 (0) | 2020.02.18 |
MySQL에서 열 이름을 바꾸는 중에 오류가 발생했습니다 (0) | 2020.02.18 |
우리는 얼마나 많은 레벨의 포인터를 가질 수 있습니까? (0) | 2020.02.18 |