八股文之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 服务器作为网关且不能从上游服务器及时的得到响应返回给客户端