网址信息解读

作者举了很多例子,但是除了 http 协议和 ftp 协议,其他的使用不多,其中 http 和 ftp 里面提到的输入用户名和密码,实际测试了几次,没有成功过,精简再精简,汇总成以下三个图:

《网络是怎样连接的》阅读笔记 1.1 HTTP请求信息_HTTP

《网络是怎样连接的》阅读笔记 1.1 HTTP请求信息_状态码_02

《网络是怎样连接的》阅读笔记 1.1 HTTP请求信息_状态码_03

🎪 协议是干什么用的

  1. http/https 用于网页访问;

《网络是怎样连接的》阅读笔记 1.1 HTTP请求信息_HTTP_04

  1. ftp 局域网上传下载文件;
  2. file 文件资源浏览

《网络是怎样连接的》阅读笔记 1.1 HTTP请求信息_状态码_05

🎪 解析是什么意思

解析的意思,就是根据协议头,决定后面元素的拆分方式以及发送方式。如 http 协议的,需要拆出 网址,端口和路径;如 file 协议的,需要拆出 访问主机和路径

🎪 路径的特殊解析方式

💊 情况1:以文件夹结尾

https://blog.51cto.com/creative-center/manager/

产生这种结尾,而非以文件夹结尾,原因是,有默认页,程序员设定了路由,什么都不写的就指向 /creative-center/manager/a.txt


💊 情况2:省略路径后斜杠

https://blog.51cto.com/a

这个有两种可能,可能是路径下有默认文件,也可能是文件。通常是先尝试作为文件解析,解析失败后再尝试使用文件夹下的默认值进行解析


💊 情况3:只写域名

https://blog.51cto.com/

同上,有默认页面,比如默认是 /a/b.txt


💊 情况4:省略斜杠

https://blog.51cto.com

同上,有默认页面,为了简单,不加后面的斜杠也可以


🎪 HTTP协议是怎样运作的

💊 HTTP协议有什么用

和客户端和 Web 服务器进行信息交互传输

💊 怎么找Web服务器

根据 URL,或者说 URI 来找,URI 通俗的说就是地址,绝对地址和相对地址都算 URI?(此处读书的理解,后面章节会详细讲解)

💊 找到服务器后要做什么

HTTP协议使用『方法』来处理具体的操作,常用主要有以下几种:

GET:      获取数据(图片、网页、链接等)

POST:    提交数据信息,获得成功失败结果(注册某某会员,视频点赞,购买商品,用户举报投诉等)

PUT:      修改数据信息,比如网购商品,修改一下地址信息

DELETE: 删除数据信息,网购的购物车的商品堆满了,删除一些失效商品


🎪 请求响应消息格式

💊 请求消息格式

粗略的按行来看,分为:

【请求行】(一行)

【消息头】(多行)

【空行】(一行)

【消息体】(一行)


🍤请求行

示例:POST a/b.html HTTP/1.1

格式为:<方法><空格1个><URI相对地址><空格1个><协议和版本信息>


🍤消息头

《网络是怎样连接的》阅读笔记 1.1 HTTP请求信息_服务器_06

示例: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: 服务器错误