- 什么是http?
http英文全称:hypertext transfer protocol
http中文全称:超文本传输协议 - http的主要结构与特点?
2.1 主要由三部分组成,请求行+请求头+请求体。
请求行:协议+版本号+状态码+状态码的含义+(统一资源定位符)
请求头:请求方式+缓存方式等等
请求体:发送给服务器的请求参数
2.2 特点:灵活使用、无连接、无状态
灵活使用:可以传输各种类型的数据,通过Content-Type指定
无连接:客户端发送请求,接收响应后就断开连接
无状态:客户端与服务端双方无法得知上次请求的信息,每次请求都像是第一次请求,因此引入了cookie机制。 - http状态码
3.1 主要状态码:
200 OK:请求成功
307 Temporary Redirect:被请求的页面临时转移到新的url
404 Not Found:请求页面不存在
500 Internet Server Error:服务器出现错误
3.2 状态码类别:
1xx:信息
100 Continue:服务端接收了部分请求,客户端可以继续向服务端发送剩余的请求
101 Switch Protocol:服务端遵从客户端请求,转换协议
2xx:成功
206 Partial Content:客户端发送了带range的get请求,服务端响应完成
3xx:重定向
301 Moved Permanently:请求的页面已经永久转移到新的url
302 Found:请求的页面已经临时转移到新的url
4xx:客户端错误
400 Bad Request:服务端不能理解请求
401 Unauthorized:请求的页面需要验证账号、密码
403 Forbidden:请求的页面被禁止访问
405 Method Not Allowed:请求的方式不被服务端允许
406 Not Acceptabled:响应的内容不被客户端接受
408 Request Timeout:请求超出了服务端的等待时间
416:服务端不能满足客户端指定的range
5xx:服务端错误
502 Bad Gateway:服务器从上游服务器收到一个无效的响应
503 Service Unavailable:服务器过载或宕机
504 Gateway Timeout:网关超时 - http版本号
http0.9:只支持基础的GET请求方式
http1.0:扩展了POST、HEAD请求方式,支持pragma、if-modified、默认关闭长连接
http1.1:支持cache-control、etag、默认开启长连接、range(断点续传)、管道机制(一个tcp承载多个客户端请求,但服务端只能一个个处理)
http2:多路复用(服务端可以并行处理请求)、服务器主动推送静态文件、首部压缩(请求头保存在头信息表,只传输索引号) - http是一种应用层协议。
5.1 TCP/IP共分为四层,应用层(http)、传输层(tcp)、网络层(ip)、数据链路层(ethernet)
5.2 一个网站的http请求:应用层发起请求,调起传输层封装传输数据,经由网络层转发到数据链路层,每经过一层会加上一个首部(比如http到tcp,会给http数据加上tcp首部),数据链路层接收请求,解析网络层,解析传输层,解析应用层,每经过一层会去掉一个首部。 - URI与URL的关系
一般认为URL是URI的子集,可不用特别区分这两者。 - http方法
7.1 head 获取请求uri的头部
7.2 options 获取请求uri支持的请求方法
7.3 trace 获取发送出去的请求经过了怎样的加工修改(比如代理中转) - 通信数据转发服务
8.1 代理:比如nginx反向代理,将用户请求无感知的转发到提供服务的服务器
8.2 网关:将http协议转化成其他协议
8.3 隧道:作为相隔甚远的客户端与服务端之间的中转服务器 - http首部
10 https
10.1 什么是https?
https在TSL/SSL协议的基础上对http数据进行了加密,配置https需要获取ca证书,使用证书中的非对称密文进行加密。
https = http + 加密 + 身份认证 + 完整性保护
10.2 特点
数据更安全但会降低传输效率,因为加密使数据包变大
10.3 对称加密与非对称加密
复述一个例子:
鲍勃有两把钥匙,一把公钥、一把私钥,鲍勃将公钥复制给道格与苏珊。一天,苏珊给鲍勃写信,用公钥加密信的内容,发送给鲍勃。鲍勃收到信号,用私钥解密信的内容。鲍勃查看完信的内容,给苏珊回信,鲍勃使用hash加密信的内容,生成digest,再用私钥加密digest,生成signature,附加在信件下方发送给苏珊。苏珊收到回信后,使用公钥解密signature,再使用hash加密信的内容,生成digest,将两个digest作对比,若一致,则说明信的内容未被更改。
有一种特殊情况是,如果道格偷偷的将苏珊持有的属于鲍勃的公钥换成他自己的公钥,再去伪造鲍勃的信息(使用他自己的私钥)给苏珊发送信件,这样就会窃取到鲍勃和苏珊的信息。为了防止这种情况,鲍勃应该向CA申请为自己的公钥作认证,CA使用私钥将鲍勃的公钥与信息加密,生成数字证书,附加在signature后,发送给苏珊,苏珊使用CA的公钥解密数字证书,就可以拿到鲍勃真正的公钥了。
10.4 http1.1的四种认证方式
BASIC认证(基本认证)
DIGEST认证(摘要认证)
SSL客户端认证
FormBase认证(基于表单认证)
11 参考资料
11.1 彻底搞懂HTTP协议
http://www.akathink.com/2016/07/28/彻底搞懂HTTP协议/
11.2 HTTP 状态消息
http://www.w3school.com.cn/tags/html_ref_httpmessages.asp
11.3 HTTP 请求方法
https://www.w3cschool.cn/http/yerxcfmt.html
11.4 Java Security:公钥私钥、数字签名、消息摘要是什么 http://www.cnblogs.com/f1194361820/archive/2015/01/29/4260025.html
我所知道的http-1
最新推荐文章于 2021-06-29 00:55:16 发布