学习网络之旅(一)——http1.0

其实学习网络(网络怎样连接)很简单,我们只需要打开wireshare抓包分析里面数据包的包结构到底是什么样子的,这样逐层去了解整个网络的架构就基本解决了浏览器(客户端)的网络知识。

下图是HTTP协议的基本思路:
在这里插入图片描述
(下面这些数据包是开启网络后通过wireshare抓包后随便抓到的)

总结HTTP包格式:

[A] 请求包
<方法><空格><空格><HTTP版本> 请求行
<字段名>:<字段值>

消息头,每行包含一个头字段,用于表示请求得附加信息。
消息头得行数根据具体情况可变,一直延申到空行为止
<空行>
<消息体> 消息体包含客户端向服务器发送得数据,eg:POST方法向 WEB服务器发送得网页表单数据。
[B] 响应消息
<HTTP版本><空格><状态码><空格><相应短语> 状态行(用来解释状态码得短语
<字段名><字段值> 消息头
<空行>
<消息体>
消息体包括服务器向客户端发送得数据,例如从文件中读取得数据,或者CGI程序输出得数据。消息体得内容作为二进制处理。
Content type: application/json; text/plain

1、第一个数据包(请求包):

在这里插入图片描述关于上图中具体选项的说明:

  • Source ——> 表示源IP地址,简称 src;
  • Destination ——> 表示目的地址,简称: dst;
  • Protocol: 协议是HTTP协议(目前整个互联网所使用的);
  • Length ——> 这个http数据包的长度;
  • Info ——>表示信息。从左到右:请求方法—> HTTP协议的版本为1.1;

打开上面的数据包,查看包里面的具体内容:

HTTP包含数据内容有:HTTP包 = TCP + IP + MAC + 数据段

在这里插入图片描述

2、第二个数据包(应答包):

在这里插入图片描述关于上图中具体选项的说明:

  • info 信息里面 200表示Web服务器端响应状态码 200 OK

http 状态码:

  • 1xx ——> 告知请求的处理进度和情况;
  • 2xx ——> 服务器端响应状态码,OK 成功;
  • 3xx ——> 表示进一步操作;
  • 4xx ——> 表示客户端错误;
  • 5xx ——> 表示服务器端错误;

打开上面的数据包,查看包里面的具体内容:

在这里插入图片描述
在这里插入图片描述

3、第三个数据包:

在这里插入图片描述
在这里插入图片描述
Severity level (数据包信息级别):不同的数据包表示不同的错误级别:Chat、Note、Warn、Error(会话、提示、警告、错误)。

在wireshare中对这四种包分别对应不同的颜色:

  • Chat(grey): information about usual workflow,a TCP packet with the SYN flag set(有关常规工作流的信息,设置了SYN标志的TCP数据包);
  • Note(cyan): an application returned an “usual” error code like HTTP “404”(an application returned an “usual” error code like HTTP “404”)——>Note级别的数据包表示数据包虽然合法但是不是我们预期数据。
  • Warn(yellow): application returned an “unusual” error code like a connection problem。(应用程序返回“异常”错误代码,如连接问题。)
  • **Error(red): ** erious problem,[Malformed Packet];(严重问题,[格式错误的数据包])
    .
    Warn,Error很明显就是错误数据了,需要特别注意分析。
Group

There are some common groups of expert infos. The following are currently implemented:

**Checksum**: a checksum was invalid
**Sequence**: protocol sequence suspicious, e.g. sequence wasn’t continuous or a retransmission was detected or …
**Response Code**: problem with application response code, e.g. HTTP 404 page not found
**Request Code**: an application request (e.g. File Handle == x), usually Chat level
**Undecoded**: dissector incomplete or data can’t be decoded for other reasons
**Reassemble**: problems while reassembling, e.g. not all fragments were available or an exception happened while reassembling
**Protocol**: violation of protocol specs (e.g. invalid field values or illegal lengths), dissection of this packet is probably continued
**Malformed**: malformed packet or dissector has a bug, dissection of this packet aborted
**Debug:** debugging (should not occur in release versions)
It’s possible that more groups will be added in the future.

翻译如下:
有一些常见的专家信息组。目前执行的项目如下:
校验和 ——> 校验和无效
序列 ——> 可疑的协议序列,例如序列不是连续的或检测到重传或…
响应代码 ——> 应用程序响应代码有问题,例如HTTP 404页面未找到
请求代码 ——> 应用程序请求(例如文件句柄== x),通常是聊天级别
未解码 ——> 析扇区不完整或数据由于其他原因无法解码
重新组装 ——> 在重新组装时出现的问题,例如不是所有的碎片都可用,或者在重新组装时发生了异常
协议 ——> 违反协议规范(例如无效的字段值或非法的长度),可能会继续剖析这个数据包
变形 ——> 变形的包或分析器有一个bug,这个包的剖析失败了
Debug ——> 调试(在发布版本中不应该发生)
将来可能会添加更多的组。

消息体类型为:HTML

在这里插入图片描述

4、第四个数据包:

在这里插入图片描述
在这里插入图片描述
因为是POST所以返回包也会有数据段(消息体)!!!

5、第五个数据包:

在这里插入图片描述颜色异常(TCP 虚假传输)

实际上并没有超时,而看起来超时了,导致虚假重超时重传的原因很多:

  • 对于部分移动网络,当网络发生切换时会导致网络延时突增。
  • 当网络的可用带宽突然变小时,网络的TTL会突增,导致虚假重传。
  • 网络丢包(原始和重传的包都有可能丢包)导致虚假重传。

在这里插入图片描述

6、第六个数据包:

连发了6个数据包

在这里插入图片描述
请求方法为:GET

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值