一、OSI模型
1、物理层:光缆:传输的介质
2、数据链路层:传输单元:交换机 网桥
3、网络层:数据包
4、传输层:TCP、UDP(广播协议)
5、会话层:
6、表示层:
7、应用层:人机交互 HTTP、HTTPS、DNS、FTP
二、HTTP协议
1、互联网:
客户端 服务端
浏览器、app、手机浏览器 前端服务器(nginx)后端服务器(docker) uwsgi(python)+网关服务
发送一个请求(请求地址)------nginx(转发请求、负载均衡)----发送到对应的服务
2、HTTP协议
(1)超文本传输协议,基于TCP之上的传输协议
(2)TCP与HTTP的区别:
TCP:高速公路 HTTP:跑在高速公路上的汽车
(3)HTTP数据传输的格式:
Content-Type:application/json json格式
Content-Type:application/x-www-form-urlencoded form表单
multipart/form/data :传输文件
(4)请求类型
post:添加资源
get:获取资源
put:修改资源:不管是否部分修改,都要传
patch:修改资源,部分修改只需要修改部分
delete:删除资源
head:查看响应头(查看接口请求规范)
options:查看该接口支持的请求方式
connect:HTTP/1.1协议预留的,将服务器作为跳板,去访问其他服务,再把请求的数据给你。
trace:查看请求数据:自测
3、HTTP的组成
①请求头
②请求体
③响应头
④响应体
⑤提取信息
- 请求地址:Request URL :http://
- 请求方法: Request Method
- 请求数据:
- 数据格式:Content-Type:application/json
- 鉴权信息:鉴权令牌(token) cookie
- requests
4、响应状态码
(1)1xxx:服务端已经收到了你的请求,需要客户端继续请求
101:切换更高的协议
(2)2xxx:成功状态码
200:请求成功
201:post根据你发的数据,创建好了对应的数据
202:后端已经收到,但是还没处理完成
206:部分处理成功,一般用于get请求。电影一部分一部分传
(3)3xxx:重定向
301:请求的资源没有了,返回给你另外一个资源的地址,浏览器拿着这个地址继续请求
302:临时移除:
(4)4xxx:客户端错误
401:需要用户授权或认证
402:保留资源,以后使用
404:客户端找的资源不存在,客户端请求错误,地址错误
408:服务端等待客户端请求超时
403:客户端发的请求服务端收到了,但是拒绝执行,【权限问题,或者是未实现的功能,黑名单】
(5)5xxx:服务端错误
500:服务器挂了,无法完成请求
501:服务器不支持这个功能,无法完成请求
502:网关返回的,网关服务器通过另外的链接去其他服务器去拿数据,然后在给你,
他在拿数据的过程中访问到了一个无效响应,没拿到数据
503:服务器维护中,暂时无法处理客户端的请求
504:网关没有及时从远端服务拿到请求数据
5、HTTPS请求过程
- 浏览器向服务器发送 https 请求
- 服务器向 CA 机构获取证书
- 服务器向浏览器发送数字证书(包含 public key)
- 浏览器用预置的 CA 列表验证证书,生成随机对称秘钥【key】,并使用公钥加密,如有问题会提示风险,
- 浏览器加密后的【key】,发送给【服务器】,作为接下来请求的秘钥
- 服务器用自己的 private key 解密得到对称秘钥 key
- 浏览器使用随机码 key 进行解密数据
- 浏览器、服务器使用该秘钥进行通信
6、补充
(1)http与https的区别
①http:明文传输、https:密文传输
②http端口:80,https:443
③https:有CA证书,要钱的
④http无状态的,https是ssl+http协议可以进行加密传输、身份认证
(2)get、post的区别
①Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。
②Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。
③Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
④Get执行效率却比Post方法好。Get是form提交的默认方法。
(3) TCP 和 UDP的区别
①TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
②TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
③TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
④UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
⑤每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
⑥TCP首部开销20字节;UDP的首部开销小,只有8个字节
⑦TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
(4) TCP三次握手、四次挥手
http://testingpai.com/article/1621669379653