"accept" 部分是做什么用的?
What is the "accept" part for?
当使用 Net::HTTP
连接到网站时,您可以解析 URL 并使用 #.each_header
输出每个 URL headers。我了解编码和用户代理等含义,但不了解 "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"]}
来自https://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z3
This field contains a semicolon-separated list of representation schemes ( Content-Type metainformation values) which will be accepted in the response to this request.
基本上,它指定了您可以回读的内容类型。例如,如果您编写一个 api 客户端,您可能只对 application/json
感兴趣(并且您不会关心 text/html
)。
在这种情况下,您的 header 将如下所示:
Accept: application/json
并且该应用会知道不会按您的方式发送任何 html。
使用 Accept
header,客户端可以指定他们愿意为请求的 URL 接受的 MIME 类型。如果请求的资源是例如有多种表示形式(例如 PNG、JPG 或 SVG 图像),用户代理可以指定他们只需要 PNG 版本。是否接受此请求取决于服务器。
在您的示例中,请求 header 指定您愿意接受任何内容类型。
header定义在RFC 2616.
当使用 Net::HTTP
连接到网站时,您可以解析 URL 并使用 #.each_header
输出每个 URL headers。我了解编码和用户代理等含义,但不了解 "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"]}
来自https://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z3
This field contains a semicolon-separated list of representation schemes ( Content-Type metainformation values) which will be accepted in the response to this request.
基本上,它指定了您可以回读的内容类型。例如,如果您编写一个 api 客户端,您可能只对 application/json
感兴趣(并且您不会关心 text/html
)。
在这种情况下,您的 header 将如下所示:
Accept: application/json
并且该应用会知道不会按您的方式发送任何 html。
使用 Accept
header,客户端可以指定他们愿意为请求的 URL 接受的 MIME 类型。如果请求的资源是例如有多种表示形式(例如 PNG、JPG 或 SVG 图像),用户代理可以指定他们只需要 PNG 版本。是否接受此请求取决于服务器。
在您的示例中,请求 header 指定您愿意接受任何内容类型。
header定义在RFC 2616.