HTTP系列-总结

HTTP系列-01
什么是http?
一种属于应用层的通讯协议。
http各版本

  • http0.9 只有get方法只能传个html回来什么状态码都没有,只有短连接
  • http1.0 加入请求头和响应头,增加head post方法,缓存expires,重定向等,默认短连接
  • http1.1 现在用的最多的就是这个 新增 option delete put方法,默认长连接,持久连接,管道机制,自定义请求头,新增digest认证 cache-control等 缺点:http1有缺陷连接无法复用,对头阻塞,协议开销过大,安全因素。
  • http2 新增实现高性能传输高吞吐 缺点(都是因为底层tcp的原因)
  • http3 基于udp 总之http的升级都是为了更好
    http传输过程
    在这里插入图片描述
    首先理解为什么三次握手?
    最终目的就是为了确认双方的收发能力。
    第三次为了服务端确定客户端接受能力OK。
  1. 第一次握手
    客户端发送SYN报文,进入SYN_SEND状态
  2. 第二次握手
    服务端收到SYN报文,发送SYN+ACK报文,进入SYN_RECEIVED状态
  3. 第三次握手(本阶段可以带数据)
    客户端收到SYN+ACK报文,客户端发送ACK确认报文给服务端进入ESTABLISHED状态,完成三次握手。
    DNS解析过程
    DNS解析(先本地host找,没有就去本地dns服务器,(如果设置了转发模式)没有则去上一层dns服务器找一直到dns根服务器)>IP>web服务器
    DNS和CND区别
    DNS之上挂载CND
    CND进行内容分发就近的服务器
    HTTP事务处理过程
    url回车》dns返回ip》http请求》tcp连接》开始http》服务器》生成http回复》tcp》传输http内容》释放tcp》网页接收解析。

HTTP系列-02
HTTP协议特点
1简单快速2灵活3无连接(响应完就断开)4无状态
URL与URI的区别与联系
URI包含URL(类似地址)和URN(类似人名),URI表示一个资源,URL提供访问机制。
HTTP报文(请求)结构

在这里插入图片描述
HTTP报文(响应)结构
在这里插入图片描述
HTTP请求方法

  1. get-传参显示-有缓存-长度限制(ie2803-谷歌8182-火狐65536)
  2. post-带请求体
  3. put-(put是幂等的post不是)
  4. head-主要用于测试超链接能不能用
  5. delete-和put一样没有验证机制有安全问题基本不用
  6. option-查询服务器支持什么方法
  7. trace-用于测试(有安全问题不用)
  8. connect-用于代理

HTTP响应状态码

  1. 200成功-201创建成功-202未处理-206部分处理
  2. 301永久-302临时-304资源未更新
  3. 400请求错误-401未授权-403禁止访问-404未找到-405不准许方法-406Not Acceptable
  4. 500-服务器错误-502网关错误-503服务器宕机

Cookie与Session
主要弥补http无状态的缺点。
由服务器派发cockie存客户端,session存服务端。
cookie工作原理

session工作原理
在这里插入图片描述
coockie和session的有效时间
coockie可以做到永久
session是存在服务器的所以一般都设置超时间,超过了这个时间没访问就删除,第二种可以主动删除

coockie和session对比
在这里插入图片描述


HTTP系列-03
url的解码编码
url采用ASCII编码,非ASCII字符集会进行编码》 %xxx
HTTP协议之基本认证
basic基本认证
digest 摘要认证 ( http1.1开始)
SLL认证
FromBase表单认证
HTTP中长连接与短连接
长连接指的是tcp的长连接,不是http
在这里插入图片描述
长连接缺点:长连接使用频繁请求的客户,但客户很多的话服务器也扛不住,可以设置一些长时间没反应断开,或设置每个客户端最大连接数。
HTTP中介之网关和代理区别
代理连接的是相同协议的
网关可以连接多个不同协议的实现。
HTTP缓存
缓存的好处,服务器不用浪费资源查找返回客户端不用重新请求。

  • cache-control字段
    no-story全部内容不缓存
    no-cache缓存,但浏览器使用缓存前会请求服务器该资源是否最新
    max-age 设置多少秒前不发请求
    s-maxage 代理的缓存
    public cdn缓存
    private 只有客户端缓存
    如果响应头里也有expires并且和max-age共存的情况,max-age优先级最高。
  • last-modified(秒级)和etag(更精确)
    etag优先级高于modified
  • 其他缓存方案-cdn缓存
    对于cdn也和http缓存一样,如果没过期就不请求服务器,如果过期了就先请求服务器拿到最新的 然后再给客户端。
    不同刷新对缓存的影响
    在这里插入图片描述
    HTTP内容协商机制
    就是客户端和服务器协商返回什么内容最符合。
    在这里插入图片描述
    HTTP的断点续传与多线程下载
    通过header中range和content-range实现。
    续传成功返回206,如果有变动返回200和新文件内容。
    在这里插入图片描述
    HTTP系列-05 4跳过
    HTTP与HTTPS
    HTTPS相当于 http+tsl 》ssl又在http和tcp之间。
    HTTPS功能
    1加密(内容加密)2保障访问的是真网站(身份认证)3防止数据修改(数据完整性)
    https原理
  • 内容加密
    非对称和对称
  • 身份认证
    数字认证(CA证书)
    HTTPS使用成本
    证书费-https降低访问速度(因为多了一层)-加解耗时(浏览器解析签名 ,秘钥交换应用层加解密几十毫秒耗时,服务器也一样)
    HTTPS握手过程
    在这里插入图片描述

HTTP系列-06
HTTP缺点

  1. 一条连接只发一个请求
  2. 只能客户端请求
  3. 请求和响应头不压缩
  4. 每次发送的头部信息多
  5. 非强制压缩发送
    WebScocket
    WebScocket是基于http的协议,可以理解为给http打的加强补丁。
    即使使用长轮询还是无法解决客户端无法接受服务器发来的信息。
    SPDY
    SPDY其实就是http2的前身
    1.多路复用2.服务器推送3.压缩头4.强制使用ssl
    也解决了雪碧图这种问题。

HTTP2.0

http2特性
http的性能增强核心》二进制分帧,也就是直接把head啥的报文头报文体转成二进制这种
在这里插入图片描述

  1. 首部压缩
  2. 多路复用(有点:减少连接提高并发,缺点:丢包情况还得重新传)
  3. 并行双向字节流
  4. 请求优先级(例如首屏最急的jscss,但这个时候还在传图片)
  5. 服务器推送

http2的问题

  1. 主要还是底层支持的tcp造成的。
  2. 例如http2中的多路复用,如果丢包的话又要重新tcp等待重传(阻塞),但http1中是多个请求所以不会阻塞后面的请求。
  3. tcp和tsl的握手延迟。

HTTP系列-07
SQL注入攻击
原理:通过用户输入的信息注入sql语句
解决:参数化参数,就是处理用户输入的信息。
跨站脚本攻击(XSS)-跨站脚本
原理:浏览器中执行恶意脚本,(例如我发布文章里插入js语句)
解决:输入验证,不信任用户输入的内容即可,对内容转码或者过滤。
CSRF攻击-跨站请求伪造
原理:通过已经认证完成的用户点击链接跳转(跳转的时候用户的cookie啥的也带过去了)转账之类-核心原因就是利用cookie。
解决:1.增加确认操作,这样可以告知用户正在进行的操作 2.重新认证,操作敏感操作重新输入密码3.使用token4.利用Cookie的SameSite

在这里插入图片描述
4
在这里插入图片描述

5
在这里插入图片描述
6
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值