2016-12-29 3 views
1

При подключении к веб-сайту с использованием Net::HTTP вы можете проанализировать URL-адрес и вывести каждый из заголовков URL-адресов, используя #.each_header. Я понимаю, что такое кодировка и пользовательский агент и такие средства, но не то, что является частью "accept"=>["*/*"]. Является ли это принятой полезной нагрузкой? Или что-то еще?Что такое «принять»?

require 'net/http' 

uri = URI('http://www.bible-history.com/subcat.php?id=2') 
http://www.bible-history.com/subcat.php?id=2> 
http_request = Net::HTTP::Get.new(uri) 
http_request.each_header { |header| puts header } 

# => {"accept-encoding"=>["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"], "accept"=>["*/*"], "user-agent"=>["Ruby"], "host"=>["www.bible-history.com"]} 

ответ

1

От https://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z3

Это поле содержит разделенных точкой с запятой список схем представления (значения Content-Type метаинформации), которые будут приняты в ответ на этот запрос.

В основном, он определяет, какие виды контента вы можете прочитать. Если вы пишете клиент api, вас может интересовать только application/json (и вам было все равно, что около text/html).

В этом случае, ваш заголовок будет выглядеть следующим образом:

Accept: application/json 

И приложение будет знать не посылать любой HTML своего пути.

+0

Значит, это не имеет никакого отношения к полезной нагрузке, которую сам сайт примет? – User9123

+2

Нет, он указал тип контента ответа, который клиент готов принять. При отправке данных на сервер (например, в тело POST) вы указываете свой тип содержимого, используя заголовок «Content-Type» запроса. –

+0

Это делает гораздо больше смысла LOL. Спасибо, человек, очень ценится. – User9123

1

Используя заголовок Accept, клиент может указать типы MIME, которые они готовы принять за запрошенный URL. Если запрашиваемый ресурс является, например, доступный в нескольких представлениях (например, изображение как PNG, JPG или SVG), пользовательский агент может указать, что они хотят только версию PNG. Для этого запроса требуется сервер.

В вашем примере заголовок запроса указывает, что вы готовы принять любой тип содержимого.

Заголовок указан в RFC 2616.

Смежные вопросы