南京做网站的客户电话,广州网站建设培训,中小企业网站制作407,网页制作书籍推荐文章目录 HTTPHTTP 是什么HTTP 协议抓包fiddle 用法 HTTP 请求响应基本格式 HTTP
HTTP 是什么 HTTP 全称为超文本传输协议. HTTP不仅仅能传输文本,还能传输图片,传输音频文件,传输其他的各种数据.
因此它广泛应用在日常开发的各种场景中. HTTP 往往是基于传输层的… 文章目录 HTTPHTTP 是什么HTTP 协议抓包fiddle 用法 HTTP 请求响应基本格式 HTTP
HTTP 是什么 HTTP 全称为超文本传输协议. HTTP不仅仅能传输文本,还能传输图片,传输音频文件,传输其他的各种数据.
因此它广泛应用在日常开发的各种场景中. HTTP 往往是基于传输层的 TCP 协议实现的.
HTTP1.0 , HTTP1.1 , HTTP2.0 均为 TCP.HTTP3 基于 UDP 实现.
目前互联网上见到的 HTTP 协议,绝大部分都是 HTTP/1.1 版本. 因为 1.1 版本就足够好用了,升级到 2.0 成本比较高(浏览器/服务器的兼容性),带来的收益有限. 有点 IPv6 的感觉~ HTTP 协议,是一种典型的一问一答的协议.
客户端发一个请求,服务器返回一个响应(一一对应)
HTTP 协议抓包
借助抓包工具,我们可以观察到 HTTP 请求/响应 的详细情况. PS: TCP/UDP 也是可以抓包的. 抓包: 把通过网卡上的数据,获取到,并且解析出来. 代理 又分为正向代理和反向代理.
举个例子:
fiddle 用法
fiddle 用法.
只要启动 fiddle,此时,抓包工作就自动开始了~ fiddle 开启后,会多一层处理,就可能导致你打开其他网页比较慢~ 左侧是抓到的 HTTP 数据报的列表. 点击某一项,右侧就能看到请求和响应的详细情况. 右上方是请求的详情. 右下方是相应的详情. 两排标签页: 响应这里打开,看到的是二进制.(本身相应也是文本,此处的二进制,是压缩后的) 为啥要压缩呢? 答: 体积小了,传输时消耗的带宽就低了,带宽是互联网中最贵的硬件资源,比 cpu,内存都要贵~
raw 标签页就是 HTTP 的原始数据. 发送 HTTP 请求就是往 TCP socket 中,按照上述格式,写入一段字符串. 收到 HTTP 响应,就是从 TCP socket 中,读出一段字符串再解析~
HTTP 请求响应基本格式
以下是一个HTTP请求/相应的抓包结果.
HTTP请求:
首行: [方法] [URL] [版本] 方法: 这次请求的动作是啥. URL: 访问的资源是啥. 版本号: 在上图中是 HTTP/1.1 请求头(Header): 从第二行开始的若干行,一直到空行结束. 表示请求的属性, :空格 分隔的键值对; 每组属性之间使用 \n 分割;Body: 空行后面的内容都是 Body. Body 允许为空字符串.如果 Body 存在,则在 Header 中会有一个 Content-Length 属性来标识 Body 的长度. HTTP 一般来说,GET 往往是不带 Body. POST 往往是带 Body 的.
HTTP 响应: HTTP 响应的基本格式也是四个部分~
首行: 首行的三个部分,使用空格分隔.(请求也是如此)响应头(Header) : 键值对.每行是一个键值对,不确定有几行,以 空行 结尾. 键 与 值 之间使用 :空格 分隔.空行正文 对于相应来说,正文通常是 HTML/CSS/JS/JSON/图片/音频/字体… 下一篇文章: JavaEE: 深入解析HTTP协议的奥秘(2)
本文到这里就结束啦~