Прежде всего, я прошу прощения, если я отправил неправильный обмен, я действительно не был уверен, где этот вопрос подходит.
В течение довольно долгого времени у меня была очень странная проблема с домашним интернет-соединением, которая определенно является ошибкой либо моего роутера, либо моего провайдера, но мой провайдер довольно беспомощен при его отладке.
По большей части мое соединение работает отлично - без простоев, и я постоянно получаю почти 100% от скорости, за которую я плачу.
Однако есть одна конкретная проблема: некоторые веб-сайты ведут себя очень странно, так как их загрузка занимает очень много времени. Примерами таких веб-сайтов являются en.wikipedia.org, www.canadapost.ca и www.theweathernetwork.com. На этих веб-сайтах, когда я пытаюсь загрузить страницу, сначала вообще ничего не загружается, и строка состояния в Chrome очень долго будет читать «Установление безопасного соединения…», и в конечном итоге это даст мне сообщение ». Этот сайт не может быть достигнут "ошибка. Если я перезагрузлю и попробую снова, через несколько раз, в конце концов, сайт загрузится, и как только этот сайт загрузится, я могу свободно просматривать этот сайт в течение примерно 15 минут без каких-либо проблем, и тогда проблема вернется.
Это не проблема с настройками брандмауэра или ПК. Я уже пробовал множество вещей, чтобы отсеять, в чем проблема, и я определил, что это должен быть либо мой модем-маршрутизатор, либо мое интернет-соединение, потому что это происходит со всеми устройствами, подключенными к моей сети (настольный компьютер, ноутбук, смартфон и т. д.) и с моим смартфоном, когда я переключаюсь на мобильные данные, проблема исчезает.
Я подал заявку в службу поддержки с моим провайдером, и они провели меня через все очевидные шаги (сброс настроек модема и т. Д.), И теперь они не очень полезны.
Я попытался протестировать одну вещь: я запустил команды curl для веб-сайтов, у которых есть эта проблема, и я кое-что заметил; со всеми веб-сайтами, имеющими эту проблему, "curl -v [url]" возвращает HTTP 301 вместо 200.
Кто-нибудь имеет какие-либо идеи, что, черт возьми, вызывает это, чтобы я мог направить техников моего провайдера в правильном направлении?
РЕДАКТИРОВАТЬ: было указано, что я не включил https в команды curl, что привело к возвращению 301. Но теперь, когда я включаю https, я заметил кое-что интересное:
При запуске curl -v на сайте https, который не является частью проблемы (такой как facebook), я получаю нормальный вывод ... но для сайта, который выглядит так:
$ curl -v https://www.canadapost.ca
* STATE: INIT => CONNECT handle 0x600057810; line 1413 (connection #-5000)
* Rebuilt URL to: https://www.canadapost.ca/
* Added connection 0. The cache now contains 1 members
* Trying 2600:140a:0:18a::1dc5...
* TCP_NODELAY set
* STATE: CONNECT => WAITCONNECT handle 0x600057810; line 1466 (connection #0)
* Trying 23.34.200.189...
* TCP_NODELAY set
* Connected to www.canadapost.ca (2600:140a:0:18a::1dc5) port 443 (#0)
* STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x600057810; line 1583 (connection #0)
* Marked for [keep alive]: HTTP default
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* STATE: SENDPROTOCONNECT => PROTOCONNECT handle 0x600057810; line 1597 (connection #0)
Затем он висит там очень долго, а затем, в конце концов, продолжается и заканчивается:
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
* subject: C=CA; ST=Ontario; L=OTTAWA; O=Canada Post Corporation; OU=Akamai SAN SSL OV; CN=www.canadapost.ca
* start date: Jan 13 00:00:00 2017 GMT
* expire date: Jan 13 23:59:59 2018 GMT
* subjectAltName: host "www.canadapost.ca" matched cert's "www.canadapost.ca"
* issuer: C=US; O=GeoTrust Inc.; CN=GeoTrust SSL CA - G3
* SSL certificate verify ok.
* STATE: PROTOCONNECT => DO handle 0x600057810; line 1618 (connection #0)
> GET / HTTP/1.1
> Host: www.canadapost.ca
> User-Agent: curl/7.54.0
> Accept: */*
>
* STATE: DO => DO_DONE handle 0x600057810; line 1680 (connection #0)
* STATE: DO_DONE => WAITPERFORM handle 0x600057810; line 1807 (connection #0)
* STATE: WAITPERFORM => PERFORM handle 0x600057810; line 1817 (connection #0)
* HTTP 1.1 or later with persistent connection, pipelining supported
< HTTP/1.1 301 Moved Permanently
* Server AkamaiGHost is not blacklisted
< Server: AkamaiGHost
< Content-Length: 0
< Location: https://www.canadapost.ca/web/en/home.page
< Date: Mon, 22 May 2017 22:01:55 GMT
< Connection: keep-alive
< Strict-Transport-Security: max-age=31536000
<
* STATE: PERFORM => DONE handle 0x600057810; line 1991 (connection #0)
* multi_done
* Connection #0 to host www.canadapost.ca left intact
* Expire cleared
Ответы:
Это было вызвано IPv6. Я отключил его на своем маршрутизаторе и установил только IPv4, и проблема исчезла.
источник
Похоже, что все эти три сайта работают только по протоколу HTTPS. Если вы начинаете указывать
http://
адреса, эти сайты информируют ваш браузер о том, что они постоянно переходятhttps
с сообщениями 301. Это будет частью сообщения 301. Вы можете получить дополнительные перенаправления, которые добавляют путь к странице по умолчанию. 301 редирект, скорее всего, красная сельдь.Такие длительные задержки часто встречаются, если у вас есть проблемы с подключением DNS. Однако я ожидаю, что это произойдет с первой попытки.
Все эти сайты поддерживают IPv6. Если кажется, что у вас есть возможность IPv6, Chrome, скорее всего, попытается использовать IPv6, а не iPv4 для подключения. Согласование HTTPS может включать несколько подключений к разным серверам. Если какой-либо из них заблокирован или отключен, это может привести к задержкам.
Это может помочь в использовании инструментов разработчика Chome ( CtrlShifti. Выберите вкладку Сеть, которая покажет вам время загрузки для компонентов страницы. Наведите указатель мыши на первое медленное соединение для получения подробной информации о времени.
источник