我所知道的http-1

  1. 什么是http?
    http英文全称:hypertext transfer protocol
    http中文全称:超文本传输协议
  2. http的主要结构与特点?
    2.1 主要由三部分组成,请求行+请求头+请求体。
    请求行:协议+版本号+状态码+状态码的含义+(统一资源定位符)
    请求头:请求方式+缓存方式等等
    请求体:发送给服务器的请求参数
    2.2 特点:灵活使用、无连接、无状态
    灵活使用:可以传输各种类型的数据,通过Content-Type指定
    无连接:客户端发送请求,接收响应后就断开连接
    无状态:客户端与服务端双方无法得知上次请求的信息,每次请求都像是第一次请求,因此引入了cookie机制。
  3. 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:网关超时
  4. http版本号
    http0.9:只支持基础的GET请求方式
    http1.0:扩展了POST、HEAD请求方式,支持pragma、if-modified、默认关闭长连接
    http1.1:支持cache-control、etag、默认开启长连接、range(断点续传)、管道机制(一个tcp承载多个客户端请求,但服务端只能一个个处理)
    http2:多路复用(服务端可以并行处理请求)、服务器主动推送静态文件、首部压缩(请求头保存在头信息表,只传输索引号)
  5. http是一种应用层协议。
    5.1 TCP/IP共分为四层,应用层(http)、传输层(tcp)、网络层(ip)、数据链路层(ethernet)
    5.2 一个网站的http请求:应用层发起请求,调起传输层封装传输数据,经由网络层转发到数据链路层,每经过一层会加上一个首部(比如http到tcp,会给http数据加上tcp首部),数据链路层接收请求,解析网络层,解析传输层,解析应用层,每经过一层会去掉一个首部。
  6. URI与URL的关系
    一般认为URL是URI的子集,可不用特别区分这两者。
  7. http方法
    7.1 head 获取请求uri的头部
    7.2 options 获取请求uri支持的请求方法
    7.3 trace 获取发送出去的请求经过了怎样的加工修改(比如代理中转)
  8. 通信数据转发服务
    8.1 代理:比如nginx反向代理,将用户请求无感知的转发到提供服务的服务器
    8.2 网关:将http协议转化成其他协议
    8.3 隧道:作为相隔甚远的客户端与服务端之间的中转服务器
  9. 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值