Учитывая имя хоста, как можно определить правильную схему для него? - PullRequest
0 голосов
/ 16 января 2019

Учитывая hostname пользователем, как можно составить URL с правом scheme?

И даже больше, как вы можете определить, стоит ли ставить www?

например: ryanair.com

https://ryanair.com     -> 504 Timeout
https://www.ryanair.com -> 200 OK
http://ryanair.com      -> https://www.ryanair.com
https://ryanair.com     -> https://www.ryanair.com

Правильный ответ для ryanair.com должен быть https://www.ryanair.com.

Кто-нибудь сталкивался с этим раньше?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Очевидно, что вы не можете знать, не отправляя HTTP-запросы, чтобы увидеть, какие перенаправления они делают, пока вы не нажмете HTTP 200.

Стоит ли сначала попробовать http: // или https: //, это зависит от того, что вы пытаетесь сделать. При сканировании веб-сайта - первое, если вы собираетесь использовать эти ссылки в общедоступных веб-службах, затем второе.

Так что я бы сделал это так:

  1. запрос на голый домен (без www) с https://
  2. если это не удалось или время ожидания истекло, запросите незащищенный домен с помощью http://
  3. в случае неудачи повторите вышеописанные шаги, но для www

N.B. большинство веб-сайтов, использующих www, будут перенаправлены с открытого домена HTTPS-сайты будут перенаправлять с http: // на https: // тоже. Таким образом, самый безопасный запрос, который вы можете сделать, это no-www + http://,, но я бы начал с предположения о https, поскольку в настоящее время общая тенденция заключается в шифровании Интернета.

0 голосов
/ 16 января 2019

Просто запросите URL с простым HTTP-запросом и посмотрите, куда вы будете перенаправлены. Не все сайты предлагают HTTPS, но практически все будут предлагать HTTP (в случае сбоя HTTP вы можете повторить попытку с HTTPS, но это будет чрезвычайно редко). Вы не можете предполагать, что субдомен www. существует, это совершенно произвольное устаревшее соглашение, не имеющее технического смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...