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를 초과 할 수는 없습니다
. 즉, 모든 도메인에서 브라우저가 전체적으로 열리는 최대 연결 수입니다.
2020 업데이트
브라우저 당 병렬 연결 수
| Browser | Connections per Domain | Max Connections |
| -------------------- | ------------------------------ | ------------------------------ |
| Chrome 81 | 6 [^note1] | 256[^note2] |
| Edge 18 | *same as Internet Explorer 11* | *same as Internet Explorer 11* |
| Firefox 68 | 9 [^note1] or 6 [^note3] | 1000+[^note2] |
| Internet Explorer 11 | 12 [^note4] | 1000+[^note2] |
| Safari 13 | 6 [^note1] | 1000+[^note2] |
- [^ note1] : 72 개의 요청으로 테스트, 1 개의 도메인 (127.0.0.1)
- [^ note2] : 1002 개의 요청으로 테스트, 도메인 당 6 개의 요청 * 167 개의 도메인 (127.0.0. *)
- [^ note3] : 비동기 컨텍스트에서 호출 될 때 (예 :
setTimeout
, +requestAnimationFrame
,then
…의 콜백에서 ) - [^ note4] : 마지막 6 개는 후속 조치입니다 (2,4,6은 각각 0.5, 1, 1.5 초에 사용 가능)
답변
다양한 브라우저에는 호스트 이름 당 최대 연결 수에 대한 다양한 제한이 있습니다. 정확한 숫자는 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 를 확인하여 이유를 확인하십시오.