这是我参与「第四届青训营」笔记创作活动的的第8天
网络请求
当用户发起一个HTTP请求,浏览器有专门处理输入信息的部分,然后得到一个完整的请求地址。
随后会交由浏览器中专门负责发起请求的内核部分,发起一个真实请求,经过网络后到达所部署的服务器。
服务器的处理结果获得后,又会经过互联网回到我们的浏览器中,经过读取响应、渲染的一系列操作,最后页面便会加载完成,呈现给用户浏览。
TCP/IP(互联网相关所有协议族)网络模型的四层结构:分层管理,从下往上分别为数据链路层(Network Interface) 、网络层(Network) 、传输层(Transport) 和 应用层(Application) 。
protocol 协议
ip: 发送数据包的协议,两个重要组成:ip地址和mac地址
arp: 解析地址的协议,根据ip地址反查出mac地址
tcp: 可靠的字节流(为方便传输,将大块数据分割成片以报文段为单位的数据包)服务,三次握手确保传输到目标
URL: Uniform Resource Locator,统一资源定位符
简单的http协议
-
请求方法: get post put delete head trace connect
-
SSL(Secure Sockets Layer)安全套接层
-
TLS(Transfer Layer security)传输层安全
-
HTTP:无状态协议。 每个请求之间都是孤立的,每个请求不知道之前携带过什么信息、做了什么事情。但我们也会想办法让无状态协议带上一些信息。
HTTP/1.1起:持久连接
使用Cookie:保留无状态特征,解决类似矛盾
-
简单可扩展
允许自定义头部(header),只需要client和server彼此能了解自定义的内容是什么含义即可。 -
应用层协议,基于TCP协议
超文本可以承载多种体材,包括处理页面所需要的HTML\CSS\JavaScript,以及和server通信所需要的一些API。
-
分为请求和响应两部分
HTTP报文结构
各结构及其相关说明:
| 结构 | 作用 |
|---|---|
| startline | Request例:POST / HTTP/1.1 (Method + Path + Version) Response例:HTTP/1.1 403 Forbidden (Version + StatusCode + StatusMessage) |
| HTTP headers | 部分语义二者是一样的,有些是各自独有的。 |
| empty line | 空行作为分隔。 |
| body | 可以附带上一些实体信息。 |