http抓包—Content-Type讲解
1、Content-Type的定义
Content-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME类型。在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。
在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。它用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析并展示html等等。
http协议是建立在tcp/ip协议之上的应用层协议,主要包括三个部分,状态行,头部信息,消息主体。对应一个http请求就是:请求行,请求头,请求体。协议规定post提交的数据,必须包含在消息主体中entity-body中,但是协议并没有规定数据使用什么编码方式。开发者可以自己决定消息主体的格式。数据发送出去后,需要接收的服务端解析成功,一般服务端会根据content-type字段来获取参数是怎么编码的,然后对应去解码。
2、Content-Type的格式:
Content-Type:type/subtype ;parameter
type:主类型,任意的字符串,如text,如果是*号代表所有;
subtype:子类型,任意的字符串,如html,如果是*号代表所有,用“/”与主类型隔开;
parameter:可选参数,如charset,boundary等。
例如:
Content-Type: text/html;
Content-Type: application/json;charset:utf-8;
Content-Type的种类繁多,具体可参考http://tool.oschina.net/commons
3、下面几种类型是很常用,需要记忆的:
application/x-www-form-urlencoded
这种类型用于当HTTP将请求参数用key1=val1&key2=val2的方式组织,key 和 val 都进行了 URL 转码,放到body中(如put方法,多用于表单的提交)。注意如果是中文或者特殊字符,会自动进行URL的转码。
- 如请求参数:
- 生成的HTTP请求报文:可以看见中文是乱码的,如果没有指定UTF-8输出,应该会进行转义。
application/json
JSON 是一种轻量级的数据格式,以“key-value”对的方式组织的数据。这个使用这个类型,需要参数本身就是json格式的数据,参数会被直接放到请求实体里,不进行任何处理。服务端/客户端会按json格式解析数据(约定好的情况下)
get请求下会将key-value解析出来,放到URL的参数里面。JSON 格式支持比键值对复杂得多的结构化数据,这一点也很有用。
- 请求消息
- 生成的HTTP 请求报文
最新文章
- App.Config详解及读写操作
- Apache 网站301重定向
- 如何通过SecureCRTPortable.exe 软件远程连接某个计算机(或者虚拟机)中的某个数据库
- C#的图像处理方法--(作者:http://conner-wang.spaces.live.com转载)
- matlab注释使用,以及相应的注释快捷键
- [android]如何让TextView使用超链接
- Extjs学习笔记之九 数据模型(上)-extjs
- 0_Simple__cudaOpenMP
- 利用CSS3制作网页动画
- python开发遇到的坑(1)xpath解析ValueError: Unicode strings with encoding declaration are not supported
- leetcode 之 two sum (easy)c++
- java 中的 Comparable 和 Comparator 与 Iterable 和 Iterator
- redis前端启动和后台启动的区别
- Nginx插件之openresty反向代理和日志滚动配置案例
- Don't forget to Cherish
- VS2010部署相关
- MiZ702学习笔记11——如何使用vivado isim仿真
- Hibernate不能实时获取MySQL数据库的更新
- SQL语句还原数据库并移动文件到指定路径
- python之旅:面向对象的程序设计
热门文章
- 基于 Jepsen 来发现几个 Raft 实现中的一致性问题(2)
- Redis cluster集群配置教程
- python3(二十六)slots
- 【Selenium06篇】python+selenium实现Web自动化:日志处理
- PyCharm 项目打开窗口设置为当前还是新开一个怎么办?
- Git应用详解第八讲:Git标签、别名与Git gc
- Python中有许多HTTP客户端,但使用最广泛且最容易的是requests
- python在办公时能给我们带来什么?
- gdb 调试中No symbol “***” in current context解决方法
- Hugo博客搭建