Python3网络编程3--http报文结构

来源:互联网 发布:docker overlay网络 编辑:程序博客网 时间:2024/06/06 01:21

一、网络监控----fiddler抓包与数据分析

1、网络数据包的组成:通过fiddler可以捕获计算机和网络之间的往来的数据包,一般的请求报文由

请求行+请求头+空行+请求参数  组成,如下如所示:

与之相对应应答报文主要有  响应行+响应头+空行+响应体 组成。

HTTP响应体:如果请求的是HTML页面,那么返回的就是HTML代码。如果是JS就是JS代码。HTTP响应头:而设置Cookie,缓存等信息就是在响应头属性设置的。HTTP响应行:主要是设置响应状态等信息。

2、百闻不如一见,举个栗子?好,通过fiddler捕获一个请求报文选择“Raw”选项可看见如下原始报文:

就包含了请求方式:post;请求地址:http://180.163.222.165/cloudquery.php;协议类型及版本:HTTP/1.1;浏览器类型:Post_Multipart;主机Host: 180.163.222.165;连接Connection: Keep-Alive(长连接);请求体的长度Content-Length: 682;以及下面加密导致乱码的应答体等等。

 

以下是一个应答报文:

    它包含了协议类型和版本HTTP/1.1;状态码200;日期Date: Wed, 07 Dec 2016 10:37:00 GMT;内容类型Content-Type: application/octet-stream;连接类型Connection: close;缓存Cache-Control: no-cache;内容长度Content-Length: 161;以及下面的响应体,因为进过加密,所以我们看见的是乱码。

    这就告诉我们我们的外网环境是不安全的,我们收发的数据很有可能被第三方窃取,我记得大一上慕课网的时候有一次实验,居然抓到了明文的用户名和密码。

 

二、http响应码的意思?

重难点概述:

1XX--请求已经收悉,需要进一步的信息

100 - 表示已收到请求的一部分,正在继续发送余下部分。  

101 - 切换协议。  

 

2xx - 成功。服务器成功地接受了客户端请求:   

200 - 确定。客户端请求已成功。  

201 - 已创建。  

202 - 已接受。  

203 - 非权威性信息。  

204 - 无内容。  

205 - 重置内容。  

206 - 部分内容。  

 

3XX资源重定位

300 - 针对收到请求,服务器可执行多种操作。  

301 - 永久移动转移,请求的内容已永久移动其他新位置,建议更新链接。  

302 - 临时移动转移,请求的内容已临时移动新的位置。  

304 - 未修改。自从上次请求后,请求的内容未修改过,建议使用缓存。  

307 - 临时重定向。服务器目前从不同位置响应请求,但是临时的,不用更新链接。  

 

 

4XX客户端错误

400 - 错误的请求。  

401 - 访问被拒绝,你需要提供一些凭证 

403 - 禁止访问,你虽然提供了凭证,但是你们没有权限。  

404 - 未找到请求的内容。  

405 - 用来访问本页面的 HTTP 谓词不被允许(方法不被允许) 。  

406 - 客户端浏览器不接受所请求页面的 MIME 类型。  

407 - 要求进行代理身份验证。  

412 - 前提条件失败。  

413 - 请求实体太大。  

414 - 请求 URI 太长。  

415 - 不支持的媒体类型。  

416 - 所请求的范围无法满足。  

417 - 执行失败。  

423 - 锁定的错误。  

 

5XX服务器错误

500 - 服务器内部错误。   

501 - 服务器无法完成请求的功能。  

502 - 服务器用作网关或代理服务器时收到了无效响应。  502.1 - CGI 应用程序超时。  502.2 - CGI 应用程序出错。  

503 - 服务不可用。这个错误代码为 IIS 6.0 所专用。  

504 - 网关超时。  

505 - HTTP 版本不受支持。 

 

三、网络监控----防火墙

1、作用:防火墙具有很好的保护作用。入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机。你可以将防火墙配置成许多不同保护级别。高级别的保护可能会禁止一些服务,如视频流等,可以提供更加细致的网络保护。

2、应用及配置:防火墙可以隔离内网和外网,极大程度的提高内网的安全性。为我们提供了更多的网络控制方法,比如只允许QQ上网而不允许阿里旺旺上网只需阻止阿里旺旺的数据包通过防火墙即可。与此同时,也让我学会了另外一种手动检测网络故障的方法,比如QQ可以收发消息,但是浏览器不能上网,除了浏览器代理设置有误以外还可能是浏览器的防火墙设置有问题等。

   通过高级设置自己制定数据包进出防火墙的规则来控制特定程序、端口的网络访问情况,来实现特殊的功能。

3、说了辣么多,举个栗子?

小明需要给计算机暂时断网,不允许任何网络访问,要求方便恢复,没有插拔网线和上下线的麻烦

     控制面板--->系统和安全--->Windows防火墙-->高级设置-->出/入站规则-->新建规则-->程序-->所有程序-->阻止连接....即可,需要网络的时候,禁用这个规则即可。

 

 

 

四、关于ping命令

 

1、用途:检测两台主机之间的连通性

2、应用:

A.ping 自己:ping 127.0.0.1(本地环回地址)测试本地网卡是否工作正常;
B.ping 网关:ping 路由器地址,测试与路由器连接是否正常,也能表明网络是否连接正常;
C.ping DNS:与外网连接是否正常,

 

 


拓展;ping不通对方的ip地址有哪些原因?
答:对于ping不通对方IP,有很多原因:
1.物理线路连接不正常;

2.本地网卡工作不正常

3.对方网卡工作不正常;
4.对方设置了防火墙,过滤掉了ICMP包;
5.协议安装不正常,无法发送和接收ICMP包;
6.不处于同一个网段等等。

 

0 0
原创粉丝点击