目录
HTTP:
1.概念:
协议是一种约定,网络上数据传输时,约定好的统一的数据格式,HTTP是网络分层中的应用层(应用程序)协议。
2.常用的HTTP方法:
GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器
POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。
HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。
OPTIONS:查询相应URI支持的HTTP方法。
3.GET和POST的对比:
区别 | GET(无body) | POST |
后退按钮/刷新 | 无害 | 数据会被重新提交 |
书签 | 可以 | 不可以 |
缓存 | 能 | 不能 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded (或multipart/form-data) |
对数据长度限制 | 限制(对url长度受限) | 无限制 |
对数据类型限制 | 只允许ASCII字符 | 无限制,也允许二进制数据 |
安全性 | 较差,因为数据是url的一部分 | 较安全,因为参数不会被保存在浏览器历史中 |
可见性 | 都可见 | 不显示在url中 |
4.HTTP常见Header:
①Content-Type:数据类型(格式)
②Content-length:Body长度
③Host:客户端告知服务器,所请求资源在哪个主机的哪个端口上
④User-Agent:浏览器版本信息
⑤referer:当前页面是从哪个页面跳转过来的
5.状态码分类:
1**:信息,服务器收到请求,需要请求者继续执行操作
2**:成功,操作被成功接收并处理
(常见的有200:OK,表示请求成功;201:Created 已创建。成功请求并创建了新的资源;204: No Content,无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档)
3**:重定向,需要进一步的操作以完成请求
(常见的有302:表示所有请求页面已经临时转至新的url;307和304表示使用缓存资源)
4**:客户端错误,请求包含语法错误或无法完成请求
(常见的有404:服务器无法找到被请求页面;403:服务器拒绝访问,权限不足;409:Conflict,服务器完成客户端的PUT请求时可能返回此代码,服务器处理请求时发生了冲突)
5**:服务器错误,服务器在处理请求的过程中发生了误
(常见的有500:请求未完成,服务器遇到不可预知的情况)
HTTPS:
1.概念:
基于SSL/TLS + HTTP协议所构成---->HTTP数据在外包裹一层SSL/TLS协议的数据格式
2.作用:
HTTP是明文数据传输,存在数据包被捕获后的安全隐患
HTTPS在发送数据前会进行加密,加密后的数据即使被捕获也没用
3.原理:
(1)对称加密算法:使用同一个密钥进行加密解密
(2)非对称加密算法:提供一个私钥,可以通过私钥生成公钥;公钥和私钥都可以用来加密解密;私钥是自己用的,公钥是可以开放给别人用
(3)证书:里面包含了公钥的信息
(4)加密方式:
①单项认证:
服务端保存自己的私钥,提供自己的证书(包含公钥)
(一般是服务所有人的网站,如百度)
②双向认证:
服务端保存自己的私钥,提供自己的证书(包含服务端公钥)
客户端保存自己的私钥,提供自己的证书(包含客户端公钥)
(一般是特定网站,如银行(让客户安装自己的证书))
4.流程:
分为俩大阶段
①握手阶段:非对称加密方式,生成对话密钥(加密解密真正的http数据的钥匙)
②发送数据阶段:双方发送数据时,使用第一步生成的对话密钥,对称加密算法来加密http数据