小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。之前的工作方向是硬件,最近转到互联网,测试过程中网页报错常常一头雾水,总是喊别人来看,所以为了自己能够定位,好好学了一下,今天来做个总结
基本知识
简单网络知识回顾
之前在通信行业,接触的都是网络中的物理层, 数据链路层和网络层,对于上层协议应用层就了解的不多了 只知道在应用层就有这个http协议,它是基于tcp/ip通信协议来传递数据。 物理层--通过网线,电缆把网络设备(例如pc,交换机)连接起来,传送0和1的电信号 数据链路层--在物理层之上,运行数据层相关协议例如以太网,通过网络设备的mac地址来进行传输 网络层--通过网络地址(ip地址)来进行通信 mac地址+ip地址,用到的协议是ip协议 传输层--有了mac地址和ip地址后,还需要一个参数,表示这个数据包到底供哪个程序、进程使用,这个参数就叫端口,传输层的功能就是建立端口到端口的通信,协议簇是tcp/ip协议。 应用层--针对特定应用的协议,例如电子邮件协议,ssh,ftp等,http协议就在这一层
数据包传输
从应用层到数据层,没经过一层,数据包就会在发送端加上每层的东西,到了接收端再一层层的解析出来 (1)在应用层,就是一个http报文 (2)在传输层,就给http报文增加一个tcp首部 (3)在网络层,在传输层的基础上再增加一个ip首部 (4)在链路层,在网络层的基础上就增加一个以太网首部 然后到了接收端,就解析出来http报文, 通过wireshark抓包就会看的非常明白
http抓包分析
http协议是HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等),HTTP有两种数据报文,请求报文和响应报文 请求报文的格式:请求行、请求头部,空行和请求数据四个部分组成 打开wireshark,过滤出http报文,我们来看一下http 请求报文 从如下图中就可以看出,物理层,数据链路层,网络层,传输层和应用层,每个层的内容
每个层的详细内容,可以有兴趣研究下,很有趣,我们主要详细看下http请求报文
响应报文也是如此, 从网络通信的角度来了解http协议,感觉更透彻,最终这些请求通过网络设备,物理设备发送到目的地,但是我们一般是不关注底层的,只关注http协议本身。