前言
此笔记是不仅在看视频的时候随手记的,之后也去查询了相关资料,思考、总结而成。以哔哩哔哩网站分析。
一、 什么是HTTP?
HTTP (Hyper Text Transfer Protocol): 全称为超文本传输协议,是基于 TCP/IP 通信协议来传递数据的,用于从万维网服务器传输超文本到本地浏览器的传送协议。
-
网络协议 四层模型(由七层网络分层简化后) 第一层:主机到网络层(网络访问层):合并了物理层+数据链路层
第二层:网络层(interent 层): IP 协议,本质就是规则,双方都要遵循的守则
第三层:传输层
第四层:应用层 ,合并了 回话层+表示层+应用层(HTTP协议就在该层) -
当我们在浏览器输入一个网址,此时浏览器就会给对应的服务器发送一个 HTTP 请求,对应的服务器收到这个请求之后,经过计算处理,就会返回一个 HTTP 响应。并且当我们访问一个网站时,可能涉及不止一次的 HTTP 请求和响应的交互过程。
二、 报文分析
(一)请求报文
http请求由四部分组成:1.请求行2.消息报头/请求头3.空行4.请求正文。
1.请求行
Method Request-URI HTTP/Version RLF
- Method。 根据 HTTP 标准,HTTP 请求可以使用多种请求方法。分别有: GET, POST ,HEAD ,OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。太多了,就先不一一讲述。
- Request-URI。 URI完整地指定了要访问的网络资源,通常只要给出相对于服务器的根目录的相对目录即可,因此总是以“/”开头。
- HTTP/Version 。为协议/版本。
2.消息报头/请求头
Accept、Accept-Charset、Accept-Encoding、Accept-Language、Authorization、Host、User-Agent等。
3.空行
空行为只有CRLF的行。它表示请求头已经结束,接下来的是请求正文。
(二)响应报文
http请求由四部分组成:1.状态行2.消息报头/响应头3.空行4.响应正文。整体上跟请求差不多,但是细节上会有不同。
1.状态行
HTTP/Version Status-Code Reason-Phrase CRLF 分别为:协议名称、版本号、状态码、状态码描述。
2.消息报头/响应头
为Location、Server、WWW-Authenticate等
3.空行
作用与请求报文中的空行类似。
三、场景分析
以哔哩哔哩网站为例,分析。不过时间有点来不及了,下回分解。