Если HEAD возвращает 405, это означает, что сервер не поддерживает HEAD (по крайней мере для этого URL), и вместо этого вам придется использовать GET.Большинство сайтов должны поддерживать HEAD, поэтому вы, вероятно, захотите использовать HEAD по умолчанию, но если он выдает 405, вы можете использовать GET для этого домена.Или, может быть, вы хотите сначала попробовать HEAD для каждого запроса;YMMV.
Если серверу требуется GET и вы хотите уменьшить сетевой трафик, вы можете попробовать выполнить условное GET и / или частичное GET (см., Например, RFC2616 ).Я никогда не пробовал делать это с WebRequest, но я думаю, что он позволяет вам добавлять собственные исходящие HTTP-заголовки, так что вы сможете это сделать.
Кроме того, не забывайте об этом, если вы пишетеspider (которым вы, безусловно, являетесь), вы должны уважать robots.txt сервера, а также вежливо перетягивать ваши запросы на что-то вроде одного запроса каждые две секунды, чтобы не разбивать сервер.