网络全貌
看之前, 我们首先需要对网络全貌有个了解, 可以看一下我之前的一篇文章总结, 传送门.
导语
如果已经了解了网络全貌, 我们知道浏览器并不会帮我们发送客户端的数据, 只负责生成消息, 然后交给协议栈发送消息给服务端, 那么浏览器生成消息的过程是怎样的呢? 带着疑问我们一起来探索一下
协议
为什么需要协议?
我们日常使用浏览器的时候会发现, 浏览器不仅可以根据一个有http://
前缀链接访问网页, 也可以通过带有file://
前缀的链接访问到我们的本地系统文件 等等......
那么浏览器怎么知道我们访问的目标呢, 这时候浏览器需要一些东西来判断应该使用哪种功能来访问相应的数据, 而这个就是协议
常见的协议都有哪些?
-
http:
访问web服务器 -
ftp:
File Transfer Protocol,文件传输协议, 向ftp服务器上传或下载文件 -
file:
读取客户端计算机本地文件 -
mailto:
发送电子邮件 -
news:
阅读新闻组文章
HTTP协议
因为我们日常使用网络大多接触的是http协议, 那我们侧重看一下http协议到底是怎么回事.
首先说一下它的作用:
HTTP协议定义了客户端和服务器之间交互的消息内容和步骤
HTTP 请求方法
GET
GET方法请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据.
POST
POST方法用于将实体提交到指定的资源
HEAD
和GET基本相同, 但是没有响应体, 只返回HTTP消息头, 用于获取文件最后更新时间等属性信息
PUT
PUT方法用请求有效载荷替换目标资源的所有当前表示
DELETE
DELETE方法删除指定的资源
OPTIONS
用于通知或查询通信选项
TRACE
将服务器收到的请求行和头部返回到客户端, 用于在时候代理的环境中检查改写请求的情况
CONNET
使用代理传输加密时使用的方法
生成HTTP消息
web浏览器与服务器交互全过程
从上面的HTTP消息格式可以看出, 我们每次一个请求只能有一个URL, 但往往我们一般一个网页展示出来要请求很多资源(图片,字体, 数据等), 那么就需要获取多个响应, 这里要弄清楚的是我们每次要获取的资源都需要单独发送一次请求.