dede网站更新如何同步腾讯微博更新,android开发技术,网站开发最适合的浏览器,快速开发平台开源欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持! 不只是请求和响应#xff1a;使用Fiddler抓包HTTP协议全指南(上)-CSDN博客https://blog.csdn.net/Chunfeng6yugan/article/details/144005872?spm1001.2014.3001.5502 #x1f649;在(上)篇博客中#xf… 欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持! 不只是请求和响应使用Fiddler抓包HTTP协议全指南(上)-CSDN博客https://blog.csdn.net/Chunfeng6yugan/article/details/144005872?spm1001.2014.3001.5502 在(上)篇博客中我们初步了解了HTTP协议的基本工作原理包括它的工作过程学习了如何使用Fiddler这个强大的抓包工具来捕捉和分析网络请求与响应。现在让我们继续深入探讨与URL、HTTP方法Method、Cookie以及状态码等更为细节的内容。
目录 URL 唯一资源定位符
URL encode
HTTP方法 Method
编辑
GET 方法
POST 方法
谈谈 GET 与 POST / 区别?
其他方法 URL 唯一资源定位符 平时大家俗称的“网址”其实就是指URLUniform Resource Locator 统一资源定位符。 互联网上的每个文件都有一个唯一的URL它包含的信息指出文件的位置以及浏览器应该怎么处理它。 URL的详细规则由因特网标准RFC1738进行了约定 RFC 1738 - Uniform Resource Locators (URL) URL encode 自定义查询字符串通常是为了处理特定情况或绕过某些限制。在处理中文字符如UTF-8或GBK编码时可能会遇到一个问题某些中文字符的某个字节与特殊字符的ASCII码值相同。这可能会导致在URL中传递参数时出现混淆或错误。如果直接将这些字符作为查询字符串的一部分可能会导致服务器端解析错误或数据丢失。 像 / ? : 等这样的字符已经被URL当做特殊意义理解了。因此这些字符不能随意出现。 参数中需要带有这些特殊字符就必须先对特殊字符进行转义。 转义的规则如下将需要转码的字符转为16进制然后从右到左取4位不足4位直接处理每2位做一位前面加上%编码成%XY格式
例如: 搜索 C : 搜索 冰冷的蓝色 : 此时地址栏并没有显示转义后的数据这里的显示其实是浏览器的特殊处理实际网络传输的URL还是encode之后的。 通过Fiddler对本次搜索进行抓包可以获取到 GET 请求的真实数据。 通过在线小工具进行手动转义查看 : UrlEncode编码/UrlDecode解码 - 站长工具 验证了查询字符串的确已被转义 HTTP方法 Method 方法 描述了HTTP请求的 动作 东晋谢灵运有云 “天下才共十斗曹子建曹植独得八斗我得一斗自古及今共分一斗。” 而如今的HTTP方法的使用率也是如此 “HTTP方法共十斗GET独得八斗POST得一斗其余共分一斗。” 因此对于其余方法仅作了解。 GET 方法 GET是最常用的HTTP方法常用于获取服务器上的某个资源。 在浏览器中直接输入URL此时浏览器就会发送出一个GET请求。 另外HTML中的link、img、script等标签也会触发GET请求。以及JavaScript中的ajax也能构造GET请求。
使用 Fiddler 观察 GET 请求 访问CSDN首页,观察抓包结果 : 1) 直接在浏览器中输入一个URL此时就会触发 GET 请求 2) HTML页面中的很多元素会进一步触发 GET 请求 凡是域名中带有 csdn 字样的都是访问 CSDN 首页时进一步出发的请求~~ 3) 使用 Ctrl F5 刷新首页: 可以明显观察到这一次通过Ctrl F5访问首页相较于上一次抓取了更多的GET请求数据。 这是因为使用 Ctrl F5 会忽略本地缓存强制从服务器重新读取数据。而上述请求得到的内容大多是一些CSS文件、JavaScript文件、图片字体文件等... 这些内容一般都是固定的改变的频率非常低。因此只需要第一次访问CSDN首页时将上述固定的资源都保存下来硬盘后续再进行访问时就没有必要重复获取上述内容了。浏览器缓存机制节省了服务器的带宽加快了页面展示的速度。 POST 方法 POST方法也是一种常见的方法。多用于提交用户输入的数据给服务器。 通过HTML中的form标签可以构造POST请求或者使用JavaScript的ajax也可以构造POST请求。
使用 Fiddler 观察 POST 请求 1) 登录/注册 2) 上传文件 换头像时上传图片: 选择图片上传抓包 这里body中的数据就是头像图片的二进制内容base 64转码。 图片数据本身是二进制的HTTP协议虽然也可以传输二进制但是大部分情况会将二进制进行转码。不一定使用URL encode还有一种转码方式即base 64编码 3) POST方法的其他使用场景如更改状态、支付信息等等这里不再举例。 谈谈 GET 与 POST / 区别 ? 首先抛出明确结论: 这两个方法其实没有本质区别。(它们双方的使用场景都可以互换只不过一般不这样做)。 没有本质区别但在使用习惯上还是有区别的 ! 1) 语义不同方法表示的含义 GET 表示从服务器获取数据; POST表示向服务器提交数据; (如果就想使用 GET 提交数据 POST 获取数据可以但没必要~~) 2) 传递数据的方式不同 GET 传递数据通过 查询字符串(query string) 把自定义数据交给服务器; POST 传递数据通过 正文(body) 把自定义数据交给服务器; 3) 幂等性的要求不同 在HTTP协议中幂等性是一个重要的概念它指的是多次执行同一个操作结果都是相同的。它有助于确保系统的一致性和可预测性。 GET 方法对应的请求通常设计成幂等的; POST 方法对应的请求对于幂等性则无要求; 4) 承接幂等性 GET 如果设计成幂等的此时 GET 的结果应该是可以被缓存的;(上面提到的浏览器缓存机制) POST 不设计成幂等性 POST 就不应该被缓存; 其他方法
PUT与POST相似只是具有幂等特性一般用于更新。DELETE删除服务器指定资源。OPTIONS返回服务器所支持的请求方法。HEAD类似于GET响应体不返回只返回响应头。TRACE回显服务器端收到的请求。CONNECT预留暂无使用。 至此本篇博客的内容就已介绍完毕了。由于篇幅原因和精力有限博主不幸感冒我们未能在本文中涵盖所有开头所提及的内容。不过未尽的话题将在(下)篇博客中得到详尽的阐述。还请多多支持
不只是请求和响应使用Fiddler抓包HTTP协议全指南(上)-CSDN博客https://blog.csdn.net/Chunfeng6yugan/article/details/144005872?spm1001.2014.3001.5501 希望这篇博客能为你使用Fiddler抓包观察URL以及Method提供一些帮助
如有不足之处请多多指出
我是高耳机