2016-07-28 2 views
-3

Как я могу использовать Golang net/http's http.Get(url string), но блокировать определенные URL и ресурсы по запросу?Golang http.Get блокирует ресурсы

E.g.

http.Get("https://google.com") // But somehow block the main CSS file. 
+7

Функция http.Get извлекает только один ресурс. В случае 'https: // google.com /', CSS является встроенным на странице. Это не отдельный ресурс или файл. –

ответ

1

Вам не нужно блокировать URL-адреса и ресурсы, поскольку сеть/HTTP Get() не будет автоматически выполнять выборку включены ссылки или ресурсов.

Возможно, вы путаете его с тем, как браузер извлекает URL-адрес. Браузер выдаст запрос и последует за сбоем всех ресурсов (Javascript/CSS/images/videos и т. Д.). Но net/http-запрос Go - намного более низкий уровень - он больше похож на curl fetch - он будет следовать за перенаправлением по умолчанию , но в противном случае он просто получит один ответ на запрос GET. Вы можете придумать результат выдачи вызова `http.Get (« https://google.com ») аналогично тому, что вы видите как в браузере в качестве источника страницы (плюс HTTP-заголовки и код ответа). Этот ответ, скорее всего, будет включать в себя ряд других URL-адресов для ссылок и ресурсов - если хотите, вы можете проанализировать их и запросить некоторые или все из них (исключая то, что вы хотели бы «заблокировать»), например, веб-сайт низкого уровня сканеры делают.