我可以更改浏览器发送的 HTTP 请求的标头吗?

2024-06-21

我正在研究一种宁静的设计,并且想使用 HTTP 方法(POST, GET, ...) 和 HTTP 标头尽可能多。我已经发现 HTTP 方法PUT and DELETE浏览器不支持。

现在我希望获得同一资源的不同表示形式,并希望通过更改Accept请求的标头。取决于这个Acceptheader,服务器可以为同一资源提供不同的视图。

问题是我没有找到一种方法来告诉我的浏览器更改此标头。

The <a..>标签有一个类型属性 http://www.w3.org/TR/html401/struct/links.html#adef-type-A,可以有一个 mime 类型,看起来是一个不错的候选者,但标头仍然是浏览器默认值(在 Firefox 中可以在about:confignetwork.http.accept.default key).


我部分不同意 Milan 关于将请求的表示嵌入到 URI 中的建议。

如果可能的话,URI 应该only用于寻址资源和not用于隧道 HTTP 方法/动词。最终,如果单独创建 (POST) 或更新 (PUT) 不能达到目的,则可以将特定业务操作(编辑、锁定等)嵌入到 URI 中:



POST http://shonzilla.com/orders/08/165;edit
  

在请求 URI 中的特定表示的情况下,您需要破坏您的 URI 设计,最终使其变得更加丑陋,在同一位置(即 URI)混合两个不同的 REST 概念,并使服务器端的一般处理请求变得更加困难。米兰的建议以及许多人正在做的事情,包括。 Flickr,正是这样。

相反,更 RESTful 的方法是使用单独的位置来编码首选表示通过使用AcceptHTTP 标头用于内容协商,其中客户端告诉服务器它可以处理/处理哪些内容类型,并且服务器尝试满足客户端的请求。该方法是HTTP 1.1 标准 http://www.w3.org/Protocols/rfc2616/rfc2616-sec12.html、软件兼容并受网络浏览器支持。

比较一下:



GET /orders/08/165.xml HTTP/1.1
or
GET /orders/08/165&format;=xml HTTP/1.1
  

to this:



GET /orders/08/165 HTTP/1.1
Accept: application/xml
  

从网络浏览器中,您可以使用以下命令请求任何内容类型setRequestHeader的方法XMLHttpRequest目的。例如:



function getOrder(year, yearlyOrderId, contentType) {
 var client = new XMLHttpRequest();
 client.open("GET", "/order/" + year + "/" + yearlyOrderId);
 client.setRequestHeader("Accept", contentType);
 client.send(orderDetails);
}
  

总结一下:地址,即资源的 URI 应该独立于它的表示和XMLHttpRequest.setRequestHeader方法允许您使用以下方式请求任何表示AcceptHTTP 标头。

Cheers!
尚齐拉

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以更改浏览器发送的 HTTP 请求的标头吗? 的相关文章

  • 这是 Box API v2 获取事件时的错误吗

    使用 BOX API v2 从 Box 获取事件时 我发现了一个奇怪的行为 我得到的场景如下 使用 box API v1 将 14 个文件上传到 box net 使用stream position now 获取事件 这给出了流位置 例如12
  • iOS 7 上 Safari 浏览器的用户代理

    我只想在带有 Safari 浏览器的 iPhone 和 iPod 中打开我的网站 对于 Chrome Dolphin 等任何其他浏览器 它不应该打开 但目前我从几乎所有设备获得相同的用户代理 对于Safari User Agent Stri
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array
  • 为什么当我使用 Server.Transfer() 时没有创建 HTTP 标头?

    我正在使用 aspx 页面根据给定的参数从文件系统提供图像文件 Server Transfer imageFilePath 当此代码运行时 会提供图像 但不会上一次更改HTTP 标头已创建 与直接从同一服务器上的 URL 调用同一文件不同
  • Spring Rest-API - 403 禁止错误响应

    我是 Spring 新手 我正在编写 REST API 我收到 403 删除 放置禁止错误 以下是我正在处理的示例 RequestMapping value noteId method RequestMethod PUT public Re
  • $.Post 不包含任何回复

    我有一个 php来自另一台处理数据的服务器的文件 该数据已制成表格 所以每当我使用调用此页面时 post如果参数正确 它的反应就不会是什么 我检查了我的代码 也许标题是对此负责的 我实际上想要的是返回我的表格数据 以便我可以将其填充到另一个
  • 如何使用 php Restful 以 api 为中心的内部设计而不是使用 http 请求

    我想创建一个以 php Restful api 为中心的 Web 应用程序 网站 其中有从前端代码调用的数据 api 除了每次加载页面时进行 HTTP curl 请求调用之外 使用 slim 等框架进行内部 API 调用还能做什么 我不确定
  • RestSharp 不反序列化 JSON 对象列表,始终为 Null

    我在使用 RestSharp 将返回内容反序列化到我的类中时遇到问题 从我所有的搜索来看 我的做法似乎是正确的 我宁愿使用 RestSharp 的反序列化器 也不愿使用 Newstonsoft 的 Json NET 等另一个包 我正在做的是
  • 在 PHP 中处理 PUT/DELETE 参数

    我正在做我的CodeIgniter 的 REST 客户端库 http github com philsturgeon codeigniter restclient我正在努力弄清楚如何在 PHP 中发送 PUT 和 DELETE 参数 在一些
  • 上传大型 xml 到 WCF REST 服务 -> 400 错误请求

    我一直在尝试寻找这个错误 但到目前为止还没有运气 所以我的客户端上有一个带有此 web config 的服务
  • 单击时在新窗口中打印图像的最简单方法是什么?

    我正在尝试为图像创建一个简单的单击打印链接 我希望发生的是当单击该链接时 会打开一个包含图像的新窗口 并且浏览器会打开打印命令对话框 我的问题是这是否可以仅通过 URL 参数实现 或者通过启动页面上的锚元素实现 或者我是否必须使用 java
  • 为什么注解属性Rest.rootUrl的值必须是常量表达式?

    我在用着Android 注解框架 https github com excilys androidannotations 专门用于休息整合 我有以下代码 主机配置接口 public interface Host public String
  • IE9 WebBrowser 控件是否支持 IE9 的所有功能,包括 SVG?

    我最近升级到 IE9 beta 现在 在我的 Net 3 5 WinForm 应用程序中我想使用WebBrowser控制 所以我的问题是 是否WebBrowser控件将展现IE9的所有属性和功能吗 我担心的是 我想在上面渲染一些 SVG 图
  • 具有 ISO 日期格式的 WCF REST JSON

    我在 WCF Web 服务 框架 4 0 中使用 JSON 支持 ISO 日期格式时遇到了一个大问题 我尝试了很多 但还没有运气 休息服务 WebInvoke Method PUT UriTemplate mvnoid OrderID Re
  • 使用 REST 或 Web 服务上传/下载文件

    是否可以使用 REST 或任何其他 Web 服务上传 下载文件并发送 HTML 代码 这必须可以使用 PHP Java 或 ASP I think this http www mkyong com webservices jax rs fi
  • HTTP/2 是否提高了每台主机的连接限制?

    浏览器对每个主机的并行 XHR 数量有限制 现在约为 6 个 此限制是否适用于多路复用 HTTP 2 连接 使用 HTTP 1 1 时 浏览器对每个域施加 6 8 个连接的限制 具体取决于浏览器实现 这允许每个域最多 6 8 个并发请求 使
  • 检查 GitHub 令牌的范围

    我想被动地检查 GitHub 安全令牌的权限 范围 而不将某些内容推送到存储库中 我尝试了以下命令 我替换了 your username 你的访问令牌和我的存储库的 URL 但它显示一个错误 curl 3 URL 使用错误 非法格式或缺少
  • 如何使用 HTTP 标头发送非英语 unicode 字符串?

    我是 HTTP 相关问题的新手 我的问题是在 iOS 开发中 我想使用 HTTP 标头发送一个字符串 所以我使用 httpRequest setValue nonEnglishString forHTTPHeaderField custom
  • 以 RESTful 方式重新排序项目

    我有一个包含以下数据的表 id position name 1 4 Fred 2 2 Wilma 3 1 Pebbles 4 5 Barney 5 3 Betty 这是一个用户可以重新排列的列表 因此是位置列 我的问题是 我怎样才能以一种平
  • 使用 django 和 tastypie 通过 RESTful api 发布文件

    我正在为 Django 网站创建 RESTful api 我在用tastypie https github com toastdriven django tastypie因为这样做 我的问题是我无法设计如何通过此 api 发布图像或文件 我

随机推荐

  • 检查点是否在 OpenLayers 3 中的多边形内部

    当我在 OpenLayers 地图中绘制多边形时 我想知道标记是否位于多边形内部 我在OpenLayers API中搜索 但没有找到解决方案 你可以在这里看到我的完整代码link http plnkr co edit iI92XbxVDAg
  • 在 CsvHelper.CsvWriter 中手动添加标头

    我在用着CsvHelper用于写入行的类DataTable到 csv 文件 该代码有效 但我无法让它写入标题 如何在不创建类映射的情况下手动添加标头 http joshclose github io CsvHelper http joshc
  • 如何在android中点击画布上绘制的圆圈?

    我正在开发一个人脸检测应用程序 在这个应用程序中 我必须在脸上的眼睛和嘴巴用户可以点击拖动圆圈 在检测到的人脸上根据自己设置位置 因此 所有圆圈都已成功绘制在脸上 但我无法单击特定圆圈并使用缩小选项在整个脸上移动 请建议我有关相同问题的正确
  • 在 python 中执行 Class.objects.filter(...) 模式

    我希望使用 django 模型中使用的模式Model objects filter 跨数据构建过滤器 这可能是 pandas 的一个很好的用例 但我更感兴趣的是在尝试之前改进我的 python 首先 如果我有以下数据 DATA id 1 n
  • 从前端更改记录顺序

    我在编写下一个功能时遇到问题 我希望用户能够重新排列记录并更改 display order 值 我使用 Jquery UI 的可拖放功能来促进这一点 我可以看到如何简单地交换 display order 值 但我想为一条记录设置一个显示顺序
  • 始终执行代码和 python 脚本的结尾

    Python中有没有一种方法可以让代码块始终在程序末尾执行 除非kill 9 我们有一个 Jenkins 项目 它在构建过程中启动 python 脚本 如果开发人员决定中止工作 那么就会留下大量工件 这些工件可能 并且正在 影响未来的构建
  • pyinstaller错误:OSError:[WinError 6]句柄无效

    该文件使用终端命令获取 wifi 密码netsh wlan show profiles我之前使用 pyinstaller 创建了一些 exe 它们工作得很好 代码 import subprocess import time import s
  • ReactJS 部署应用程序错误无法复制到剪贴板:命令失败:xsel --clipboard --input

    我正在尝试部署一个ReactJS我的应用程序乌班图16 04服务器但是当我执行命令时 serve s build 这是我的package json file name client version 0 1 0 private true de
  • schematron 报告 python lxml 问题

    我正在使用 lxml schematron 模块验证 xml 文档 它运行良好 但我无法显示设置为属性的验证报告 我找不到如何将其作为 XML 树进行处理 这是我使用的代码片段 xdoc etree parse mydoc xml sche
  • 在 HTML 表单中使用 PUT 方法

    我可以在 HTML 表单中使用 PUT 方法将数据从表单发送到服务器吗 根据HTML标准 https www w3 org TR html5 sec forms html element attrdef form method 你可以not
  • 只为一个目录中的文件添加 html 扩展名

    尝试重写如下所示的链接 content about me 对此 content about me html 这对于我正在做的事情是必要的 我不断收到此 htaccess 规则的内部服务器错误 RewriteRule content cont
  • 当选项卡到另一个组件位置时,QML 中相应的滚动

    我想做的是 如果我从TextField到另一个组件 aComboBoxwtv 我希望滚动能够适应这一点 当我认为这非常重要时 当我执行连续选项卡时 我会转到滚动视图显示的内容下方的控件 一个例子是 假设我在这里 now i do 2 tab
  • 处理长时间运行的报告

    我正在开发一个用 C 和 Sql Server 2000 数据库编写的 ASP net 应用程序 我们有多个 PDF 报告供客户用于满足其业务需求 问题是这些报告需要一段时间才能生成 gt 3 分钟 通常最终发生的情况是 当用户请求报告时
  • 从Python调用和控制GDB

    我正在运行一个 Python GUI 应用程序 我想从中调用和控制GDB 比如加载可执行文件 设置断点等 我看到GDB有一个命令行界面 可以通过向GDB进程发送字符串来使用它 但我想用Python方式来做 有没有gdb py 我看到 arc
  • 在phonegap中播放本地声音

    我有一个 wav文件在我的www文件夹 我正在使用 jQuery 和以下代码 警报响起 但声音不播放 难道我做错了什么
  • 如何将 IPSec / Openswan 与 Amazon 的虚拟私有云 (VPC) 和 EC2 结合使用?

    有谁知道如何使用 Openswan 在 EC2 上创建到 Cisco 路由器的 IPSec 隧道 我一直读到人们可以或不能在亚马逊云上设置 IPSec 隧道 可能还是不可能 如果是这样 有人可以指点我一个成功的教程吗 Update AWS
  • 二分插入排序和复杂度

    我有一个关于在插入排序算法中使用二分搜索的简单问题 更准确地说 在通常的插入排序的每一步中 我们不是将元素与前一个 已排序 子数组中的所有元素进行线性比较 而是在该已排序子数组中使用二分搜索来查找该元素所属的位置 我知道这减少了算法进行的比
  • 关于复杂性(如果使用基于比较的排序算法)

    众所周知 任何基于比较模型的排序算法都有nlogn的下界 即Omega nlogn 这可以用数学证明 但众所周知 荷兰国旗问题可以在 O n 时间内对 3 个不同的元素 重复使用 进行排序 它也是基于比较模型 但可以在 O n 时间内进行排
  • 如何获取 RxJs 中的BehaviorSubject 中哪些对象发生变化?

    我正在监听一个可观察的对象 在第一次发出所有对象后 我只想获取发生变化的对象 所以如果我有 name Mark name Joe 然后名称更改我只得到更改的对象 所以如果对象变成 name Jean Mark name Joe 我只得到 n
  • 我可以更改浏览器发送的 HTTP 请求的标头吗?

    我正在研究一种宁静的设计 并且想使用 HTTP 方法 POST GET 和 HTTP 标头尽可能多 我已经发现 HTTP 方法PUT and DELETE浏览器不支持 现在我希望获得同一资源的不同表示形式 并希望通过更改Accept请求的标