JavaWeb-01-Http网络协议-02-Http网络协议包
JavaWeb-01-Http网络协议-02-Http网络协议包
1.第二版互联网通信流程图
2.网络协议包
1.在网络中传递的信息都是以二进制形式存在的。
2.接收方(浏览器/服务器)在接收到信息后,第一件事就是将二进制数据编译成文字、图片、视频和命令。
3.传递的信息数据量往往都比较巨大,导致接收方很难在一组连续的二进制中的得到对应数据。
比如:浏览器发送一个请求:http://192.168.100.6:880/index.html
这个请求以二进制的形式发送:100111010101010010001100
Http服务器很难从该二进制数据中找到相关有用信息。
这时,我们就可以使用网络协议包。
4.网络协议包就是一组有规律的二进制数据。
在这组数据中存在多个固定的空间,每一个空间都专门存放特定的信息。
如此,在接收方接收到网络协议包后,就可以从固定空间中得到相应的信息。
网络协议包的出现,极大地降低了接收方对二进制数据的编译难度。
网络协议包的格式:
【0000 (ip地址) 0000 (端口号) 0000 (资源文件名) 0000】
注意:网络协议包都是由二进制组成的。
网络协议包就好比是快递包裹的包装,将数据包装起来。
3.常见的网络协议包
1.FTP网络协议包
2.Http网络协议包
4.Http网络协议包
在基于B/S结构下的互联网通信过程中,所有在网络中传输的信息都保存在Http网络协议包中。
Http网络协议包分为:
- Http请求协议包
- Http响应协议包
4.1Http请求协议包
在浏览器准备发送请求时,负责创建一个Http请求协议包,
然后浏览器将请求信息以二进制形式保存到Http请求协议包里的各个空间,
最后由浏览器负责将Http请求协议包推送到指定服务端计算机。
4.2Http响应协议包
Http服务器在定位到被访问的资源文件后,负责创建一个Http响应协议包,
然后Http服务器将定位的文件内容或者文件命令以二进制的形式写入到Http响应协议包里的各个空间。
最后由Http服务器将Http响应协议包发送回发起请求的浏览器上。
5.Http请求协议包内部空间划分【重要】
按照自上而下划分,分成四个空间:
1.请求行:
[
url:请求地址(http://192.168.100.6:880/index.html)
method:请求方式(POST/GET)
]
2.请求头:
[
请求参数信息(GET)
]
3.空白行:
[
没有任何内容,起到隔离请求头和请求体的作用
]
4.请求体:
[
请求参数信息(POST)
]
6.Http响应协议包内部空间划分【重要】
按照自上而下划分,同样有四个空间:
1.状态行:
[
Http状态码(Status Code)
]
2.响应头:
[
Content-Type:指定浏览器采用对应的编译器对响应体二进制数据进行编译
]
3.空白行:
[
没有任何内容,起到隔离请求头和请求体的作用
]
4.响应体:
[
可能是被访问的静态资源文件内容
也可能是被访问的静态资源文件命令
也可能是被访问的动态资源文件运行结果
---都是二进制形式---
]