Do czego służy "akceptacja"? - ruby, uri, net-http

Podczas łączenia się z witryną za pomocą Net::HTTP możesz przeanalizować adres URL i wypisać każdy z nagłówków URL za pomocą #.each_header. Rozumiem, co oznacza kodowanie i agent użytkownika, a co nie, ale nie "accept"=>["*/*"] część jest. Czy to jest akceptowana ładowność? A może to coś innego?

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"]}

Odpowiedzi:

1 dla odpowiedzi № 1

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

To pole zawiera rozdzieloną średnikami listę schematów reprezentacji (wartości metainformacji Content-Type), które zostaną zaakceptowane w odpowiedzi na to żądanie.

Zasadniczo określa, jakie rodzaje treści można odczytać. Jeśli piszesz klienta API, możesz być zainteresowany tylko application/jsonna przykład (i nie dbasz o to mniej text/html).

W takim przypadku twój nagłówek wyglądałby tak:

Accept: application/json

A aplikacja będzie wiedziała, że ​​nie będzie wysyłać html na swój sposób.


1 dla odpowiedzi nr 2

Używając Accept nagłówek, klient może określić typy MIMEsą skłonni zaakceptować dla żądanego adresu URL. Jeśli żądanym zasobem jest np. dostępne w wielu reprezentacjach (np. obraz jako PNG, JPG lub SVG), agent użytkownika może określić, że chce tylko wersję PNG. Od serwera zależy, czy spełni to żądanie.

W twoim przykładzie nagłówek żądania określa, że ​​chcesz zaakceptować dowolny typ zawartości.

Nagłówek jest zdefiniowany w RFC 2616.


Najbardziej popularny