HTTP协议的请求类型、请求头和请求体编码方式、URL编码等

有段时间没有接触HTTP协议的各种细节了。花了半个小时快速baidu回忆一下其中的重要知识,写的有点简陋:

1. HTTP协议有GET, POST, DETETE, PUT等,工八种。其中针对REST风格的请求,常用的GET, POST, PUT,DETETE对应查询、新增、修改、删除。当然这也不是绝对的。

2. HTTP协议请求报文包含三部分: 请求行,请求头和请求体。其中请求行和请求头统一采用ascii编码,不然客户端,服务端通信就乱套了。而请求体的编码方式则是可以随意设置的,只要再请求头的Content-Type 参数指定一下就可以了,比如可以设置:

Content-Type:text/html;charset=utf-8

3. 请求头的Content-Type除了指定请求体的字符编码,也可以指定请求体类型,常见的有如下四种:

application/x-www-form-urlencoded: 用于传统表单提交

multipart/form-data:常用于文件上传

application/json:请求体是json串。常用于前后端分离程序,请求通过javascript的ajax请求发送

text/xml:XML-RPC, XML 作为编码方式的远程调用规范

具体参考以下文档。

https://imququ.com/post/four-ways-to-post-data-in-http.html

4. URL encoding:

对于通过get方式提交的表单,URL中的参数值含有ASCII码表中的保留字符(特殊意义字符),中文等,浏览器会对他们进行自动编码。

而对于通过java script的ajax发送的请求,需要通过js的方法手工编码。

至于为什么要编码以及浏览器如何实现get方式提交表单时实现自动编码,可参考如下文档:

https://www.cnblogs.com/jerrysion/p/5522673.html

https://blog.csdn.net/weixin_45873215/article/details/111094283

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值