브라우저에서 최대 병렬 http 연결? 사이트를보고있는 경우 Tab2에서도 웹 사이트를로드하려고 시도하면

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 를 확인하여 이유를 확인하십시오.