网址信息解读
作者举了很多例子,但是除了 http 协议和 ftp 协议,其他的使用不多,其中 http 和 ftp 里面提到的输入用户名和密码,实际测试了几次,没有成功过,精简再精简,汇总成以下三个图:
🎪 协议是干什么用的
- http/https 用于网页访问;
- ftp 局域网上传下载文件;
- file 文件资源浏览
🎪 解析是什么意思
解析的意思,就是根据协议头,决定后面元素的拆分方式以及发送方式。如 http 协议的,需要拆出 网址,端口和路径;如 file 协议的,需要拆出 访问主机和路径
🎪 路径的特殊解析方式
💊 情况1:以文件夹结尾
https://blog.51cto.com/creative-center/manager/
产生这种结尾,而非以文件夹结尾,原因是,有默认页,程序员设定了路由,什么都不写的就指向 /creative-center/manager/a.txt
💊 情况2:省略路径后斜杠
这个有两种可能,可能是路径下有默认文件,也可能是文件。通常是先尝试作为文件解析,解析失败后再尝试使用文件夹下的默认值进行解析
💊 情况3:只写域名
同上,有默认页面,比如默认是 /a/b.txt
💊 情况4:省略斜杠
同上,有默认页面,为了简单,不加后面的斜杠也可以
🎪 HTTP协议是怎样运作的
💊 HTTP协议有什么用
和客户端和 Web 服务器进行信息交互传输
💊 怎么找Web服务器
根据 URL,或者说 URI 来找,URI 通俗的说就是地址,绝对地址和相对地址都算 URI?(此处读书的理解,后面章节会详细讲解)
💊 找到服务器后要做什么
HTTP协议使用『方法』来处理具体的操作,常用主要有以下几种:
GET: 获取数据(图片、网页、链接等)
POST: 提交数据信息,获得成功失败结果(注册某某会员,视频点赞,购买商品,用户举报投诉等)
PUT: 修改数据信息,比如网购商品,修改一下地址信息
DELETE: 删除数据信息,网购的购物车的商品堆满了,删除一些失效商品
🎪 请求响应消息格式
💊 请求消息格式
粗略的按行来看,分为:
【请求行】(一行)
【消息头】(多行)
【空行】(一行)
【消息体】(一行)
🍤请求行
示例:POST a/b.html HTTP/1.1
格式为:<方法><空格1个><URI相对地址><空格1个><协议和版本信息>
🍤消息头
示例:Cookie: BAIDUID=0AA32DC742DD118772663FAC3050E193:FG=1; BIDUPSID=0AA32DC742DD1187B91D0827EDCE55AD; H_PS_PSSID=38515_36550_38529_38469_38468_38581_38486_38519_38506_26350_380_22160_38542; PSTM=1683362699; BDSVRTM=23; BD_HOME=1
格式(每行):<字段名><:><空格1个><字段值>
携带的信息可能是,数据传输一共多少字节,数据的编码是什么,格式是什么
🍤空行
空白的一行,什么也不写直接换行,用于分割识别消息头和消息体
🍤消息体
用于存放传输信息
示例: a=xxx&b=yyy&c=zzz
格式: 名称=值,多组信息用&间隔,通常POST请求携带非空的消息体,GET请求携带空消息体
💊 响应消息格式
粗略的按行来看,分为:
【状态行】(一行)
【消息头】(多行)
【空行】(一行)
【消息体】(一行)
除了第一行状态行不一样,其他和请求消息格式是一致的,因此这里只补充说明状态行
🍤状态行
示例:HTTP/1.1 200 OK
格式为:<协议和版本信息><空格1个><状态码><空格1个><状态码说明>
🍤状态码说明
1xx: 告知请求进度,处理状况,网页跳转等
2xx: 成功
3xx: 需要进一步操作
4xx: 客户端错误
5xx: 服务器错误