八股文之HTTP协议
1,http和https的区别?
HTTP(超文本传输协议):用于在web浏览器和网站服务器之间传递信息。HTTP默认工作在TCP协议80端口。HTTP协议以明文方式发送内容,不提供数据加密,因此不适合传输敏感信息,比如:信用卡卡号、密码等。
HTTPS(超文本传输安全协议):HTTPS的主要目的是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。HTTPS经由HTTP进行通信,但是利用SSL/TLS加密数据包。HTTPS默认端口号443。HTTPS页面响应速度比HTTP慢,主要是HTTP使用TCP三次握手建立连接,客户端和服务器需要交换3个包,HTTPS除了TCP的3个包,还要加上ssl握手需要的9个包,一共12个包。使用HTTPS协议需要申请证书。
2,HTTPS的工作原理:
1)客户端发起HTTPS请求
浏览器输入https网址,连接到服务端443端口
2)服务端的配置
采用HTTPS的协议必须要有一套数字证书。服务端首先生成一对公钥和私钥,然后将自己的公钥登录到“证书授权中心”,“证书授权中心”用自己的私钥对服务器的公钥进行签名,任何拥有该“证书授权中心”公钥的客户端都会知道该证书是“证书授权中心”签发的。
3)传送证书
证书被传送到客户端,证书内容主要包括服务端的公钥、证书颁发机构、签名、有效期等。
4)客户端解析证书
客户端利用“证书授权中心”的公钥验证证书是否有效,如果有效就生成一个随机值,然后用证书进行加密。
5)传送加密信息
6)服务端解析加密信息
服务端用自己的私钥解密后,获取到随机值,然后用随机值对传递内容进行对称加密(对称加密就是加密解密用的是同一个密钥)。
7)传输加密的信息给客户端
8)客户端解析加密信息
客户端用之前自己生成的随机值对收到的内容进行解密。
3,get、post、put请求?
4,状态码?
| 状态码 | 标识 | 含义 |
| 1XX | Informational(信息性状态码) | 接收的请求正在处理 |
| 100 | continue | 表示到目前为止都很正常,客户端可以继续发送请求或忽略这个响应 |
| 2XX | Success(成功状态码) | 请求正常处理完毕 |
| 200 | ok | 请求成功 |
| 204 | no content | 请求已成功处理,但是返回的响应报文不包含实体的主体部分。一般只需要在客户端往服务器发送消息,而不需要返回数据时使用 |
| 206 | partial content | 表示客户端进行了范围请求,响应报文包含由content-range指定范围内容 |
| 3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
| 301 | moved permanently | 永久重定向 |
| 302 | found | 临时重定向 |
| 4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
| 400 | bad getaway | 请求报文存在语法错误 |
| 401 | unauthorized | 表示发送请求需要有认证信息。如果之前已经进行过一次请求,则表示用户认证失败 |
| 403 | forbidden | 请求被拒绝 |
| 404 | not found | 请求的资源不存在 |
| 5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
| 500 | internal server error | 服务器正在执行请求时发生错误 |
| 502 | bad gateway | 服务器作为网关或代理,从上游服务器收到无效响应 |
|
503 |
service unavailable | 服务器暂时超负载或正在进行停机维护,现在无法处理请求 |
|
504 |
gateway timeout | 服务器作为网关且不能从上游服务器及时的得到响应返回给客户端 |