Development Tip

모든 브라우저에 대한 기본 시간 초과 설정은 어디에서 찾을 수 있습니까?

yourdevel 2020. 11. 15. 11:53
반응형

모든 브라우저에 대한 기본 시간 초과 설정은 어디에서 찾을 수 있습니까?


각 브라우저 (IE6 / IE7 / FF2 / FF3 등)가 포기하고 시간 초과되기 전에 요청을 기다리는 시간을 지정하는 일종의 문서를 찾고 있습니다.

나는 이것을 얻으려고 운이 없었습니다.

포인터가 있습니까?


이전 버전의 Mozilla에서 network.http.connect.timeout 을 찾았습니다 .

이 기본 설정은 HTTP 네트워킹 코드의 저수준 조정을 허용하기 위해 추가 된 몇 가지 중 하나입니다. 2001 년에 동일한 코드의 일부가 크게 재 작성된 후, 기본 설정은 효과가 더 이상 발생하지 않습니다 (2001 년 9 월 초에 all.js에 언급 됨).

현재 시간 제한은 시스템 수준 연결 설정 시간 제한에 의해 결정됩니다. 이 값을 구성하는 방법을 추가하는 것은 낮은 우선 순위로 간주됩니다.

network.http.connect.timeout한동안 아무것도하지 않은 것 같습니다 .

나는 또한에 대한 참조를 보았 기 network.http.request.timeout때문에 구글 검색을했다 . 결과는 다른 사람에 포함하도록 권하는 사람들에 대한 링크를 많이 포함 about:config동일한 검색이 변합니다 이후 실제로 무언가를하는 잘못된 신념으로 보이는에서 설정 항목의 : 대한 기사를 :

Pref 제거됨 (사용되지 않음) . 이전 : HTTP 관련 네트워크 시간 초과. 기본값은 120 입니다.

같은 페이지 에 대한 자세한 정보가 포함되어 있습니다 network.http.connect.timeout:

Pref 제거됨 (사용되지 않음) . 이전 : 제한 시간을 등록 할 때까지 응답을 기다리는 시간을 결정합니다. 기본값은 30 입니다.

면책 조항 : MozillaZine 기술 자료의 정보가 부정확하거나 불완전하거나 오래되었을 수 있습니다.


첫째로 나는 당신의 문제에 대한 해결책이 하나라고 생각하지 않습니다 ....

아시다시피 각 브라우저는 크게 다릅니다.

하지만 필요한 답변에 더 가까워 질 수 있는지 살펴 보겠습니다 ....

IE는 쉬울 것 같아요 ...

이 링크를 확인 하십시오. http://support.microsoft.com/kb/181050

Firefox의 경우 다음을 시도하십시오.

Firefox를 열고 주소 표시 줄에 "about : config"(따옴표 제외)를 입력합니다. 여기에서 Network.http.keep-alive까지 아래로 스크롤하여 "true"로 설정되어 있는지 확인합니다. 그렇지 않은 경우 두 번 클릭하면 false에서 true로 바뀝니다. 이제 그 아래 하나를 network.http.keep-alive.timeout으로 이동하고 두 번 클릭하여 해당 번호를 변경합니다. 예를 들어 거기에 500을 넣으면 잘할 것입니다. 이것이 도움이되는지 알려주세요.


마지막 Firefox 업데이트 후 동일한 세션 시간 초과 문제가 발생했으며 다음 설정이 문제를 해결하는 데 도움이되었습니다.

network.http.response.timeout매개 변수로 제어 할 수 있습니다 .

  1. Firefox를 열고 주소 표시 줄에 'about : config'를 입력하고 Enter 키를 누릅니다.
  2. "조심 할게요, 약속 해요!"를 클릭하세요. 단추.
  3. 검색 창에 'timeout'을 입력하면 network.http.response.timeout매개 변수가 표시됩니다.
  4. network.http.response.timeout매개 변수를 두 번 클릭 하고 상자에 세션 시간 초과를 원하지 않는 시간 값 (초 단위)을 입력합니다.

Google Chrome 용 (버전 62에서 테스트 됨)

Google 크롬의 가져 오기 API에서 원격 익스프레스 서버로 소켓 연결을 유지하려고했는데 요청 헤더가 Node.JS의 기본 <net.socket>연결 설정 과 일치해야한다는 것을 알았습니다 .

다음 옵션을 사용하여 클라이언트 측 스크립트에 헤더 객체를 설정했습니다.

/* ----- */
head = new headers();
head.append("Connnection", "keep-alive")
head.append("Keep-Alive", `timeout=${1*60*5}`) //in seconds, not milliseconds
/* apply more definitions to the header */
fetch(url, {
    method: 'OPTIONS',
    credentials: "include",
    body: JSON.stringify(data),
    cors: 'cors',
    headers: head, //could be object literal too
    cache: 'default'
 })
 .then(response=>{
    ....
  }).catch(err=>{...});

내 익스프레스 서버에서 다음과 같이 라우터를 설정했습니다.

 router.head('absolute or regex', (request, response, next)=>{
  req.setTimeout(1000*60*5, ()=>{
     console.info("socket timed out");
   });
  console.info("Proceeding down the middleware chain link...\n\n");
  next();
 });

 /*Keep the socket alive by enabling it on the server, with an optional 
  delay on the last packet sent 
 */
server.on('connection', (socket)=>socket.setKeepAlive(true, 10))

경고

상식을 사용하고 소켓 연결을 열어 놓은 사용자가 유효성을 검사하고 직렬화되었는지 확인하십시오. Firefox에서도 작동하지만 TCP 연결을 5 분 이상 열어두면 정말 취약합니다.

덜 알려진 브라우저 중 일부가 어떻게 작동하는지 잘 모르겠지만이 답변에 Microsoft 브라우저 세부 정보도 추가하겠습니다.

참고 URL : https://stackoverflow.com/questions/1342310/where-can-i-find-the-default-timeout-settings-for-all-browsers

반응형