HTTP知识

1、http是 超文本传输协议:两点直接传输文字 图片 音频 视频等超文本数据的约定和规范
2、常见的状态码    
    1XX 提示信息
    2XX成功
        200 如果是非Head 请求 服务器返回的响应都有body数据
        204没有body数据
    3XX重定向
        301永久重定向 资源不存在了改用新的URL
        302临时重定向 暂时使用另一个URL来访问
    4XX 报文有误
        400未知错误
        403服务器禁止访问资源
        404资源在服务器上未找到
    5XX服务器出错
        500未知错误
        501请求功能尚未开放
        502服务器自身正常 访问后端发生错误
        503业务忙
3、常见的字段
    Host 域名
    conten length 数据长
    Connection  连接 要求服务器使用TCP持久连接
    Content-Type 告诉客户端发送的类型 accept 客户端表示自己可以接受的类型
    Content-Encoding 压缩格式   Accept-Encoding 可接受的压缩格式
4、get与post区别
  get 从服务器获取指定的资源 
  post根据请求符合 对资源作出处理 (例如对文章进行修改然后确认浏览器就会执行post请求,信息放进保温body内拼接好post请求头通过TCP发送给服务器)
5、安全和幂等
    安全 :请求方不会破坏服务器上的资源
    幂等: 五路执行多少次结果都是相同的
6、缓存技术 :如果每次发送请求得到的数据都是一样的 就可以把他缓存在本地 避免HTTP发送请求
7、强制缓存 浏览器不会像服务器发送任何请求,直接从本地缓存中读取文件并返回Status Code: 200 OK
8、协商缓存  向服务器发送请求,服务器会根据这个请求的request header的一些参数来判断是否命中协商缓存,如果命中,则返回304状态码并带上新的response header通知浏览器从缓存中读取资源
9、优点     简单 
    灵活和易于扩展  URI/URL都可被自定义和扩充   下层可以随意变化
    应用广泛 和跨平台
      缺点    无状态双刃剑 服务器不会去记忆 HTTP 的状态,所以不需要额外的资源来记录状态信息,这能减轻服务器的负担,能够把更多的 CPU 和内存用来对外提供服务。
             既然服务器没有记忆能力,它在完成有关联性的操作时会非常麻烦。 cookie在客户端第一次请求后,服务器会下发一个装有客户信息的「小贴纸」,后续客户端请求服务器的时候,带上「小贴纸」,服务器就能认得了了,
            例如登录->添加购物车->下单->结算->支付,这系列操作都要知道用户的身份才行。但服务器不知道这些请求是有关联的,每次都要问一遍身份信息。
    明文传输双刃剑 明文意味着在传输过程中的信息,是可方便阅读的,通过浏览器的 F12 控制台或 Wireshark 抓包都可以直接肉眼查看,为我们调试工作带了极大的便利性。
                但是这正是这样,HTTP 的所有信息都暴露在了光天化日下,相当于信息裸奔。在传输的漫长的过程中,信息的内容都毫无隐私可言,很容易就能被窃取,如果里面有你的账号密码信息,那你号没了。
    不安全 通信使用明文内容可能会被窃听 不验证通信方的身份,因此有可能遭遇伪装  无法证明报文的完整性,所以有可能已遭篡改  用HTTPS解决 引入了SSL/TLS
10、HTTP/1.1  请求-应答
    长连接   减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。只要任意一端没有明确提出断开连接,则保持 TCP 连接状态
    管道网络传输 客户端可以发起多个请求,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间(服务器必须按照接收请求的顺序发送对这些管道化请求的响应。)
    队头阻塞 当顺序发送的请求序列中的一个请求因为某种原因被阻塞时,在后面排队的所有请求也一同被阻塞了,会招致客户端一直请求不到数据
11、HTTP 与 HTTPS  区别
    HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
    HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
    HTTP 的端口号是 80,HTTPS 的端口号是 443。
    HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的
12、HTTPS解决的问题
    窃听风险
    篡改风险
    冒充风险
    HTTPS在HTTP和TCP层之间加入了SSL/TLS协议
    信息加密
    校验机制
    身份证书
    如何解决的: 混合加密实现信息的机密性 摘要算法 实现完整性 服务器公钥放在数字证书中解决了冒充风险
    --混合加密 通讯前使用非对称加密方式交换会话密钥 通讯过程中使用对称加密
    --摘要算法+数字签名 对内容计算出一个指纹 同内容发过去对方收到后也计算一个指纹发回来 相同就是没被篡改 用摘要算法(哈希函数)计算内容的哈希值 (唯一 且无法推导出内容)
    但是并不能保证「内容 + 哈希值」不会被中间人替换,因为这里缺少对客户端收到的消息是否来源于服务端的证明。 非对称加密算法 公钥 公开给所有人 私钥 自己保管
    公钥加密,私钥解密。这个目的是为了保证内容传输的安全 私钥加密,公钥解密。这个目的是为了保证消息不会被冒充(数字签名算法)
    --数字证书
13、SSL/TLS流程
    客户端向服务器索要并验证服务器的公钥。
    双方协商生产「会话秘钥」。
    双方采用「会话秘钥」进行加密通信
14、HTTP/2优化
    头部压缩      如果同时发多个请求 头部相同或者相似就会消除重复部分 提高速度
    二进制格式  全面采用二进制格式 头信息帧和数据帧 增加数据的传输效率
    数据流           不同 Stream 的帧是可以乱序发送的(因此可以并发不同的 Stream ),因为每个帧的头部会携带 Stream ID 信息,所以接收端可以通过 Stream ID 有序组装成 HTTP 消息
    多路复用      一个连接中并发多个请求或回应,而不用按照顺序一一对应    移除串行请求,不需要排队等待,也就不会再出现「队头阻塞」问题,降低了延迟,大幅度提高了连接的利用率。
    服务器推送  请求-应答 改成服务端可以主动向客户端发信息
15、HTTP/2的缺陷
    HTTP/2 是基于 TCP 协议来传输数据的,TCP 是字节流协议,TCP 层必须保证收到的字节数据是完整且连续的,这样内核才会将缓冲区里的数据返回给 HTTP 应用,那么当「前 1 个字节数据」没有到达时,
    后收到的字节数据只能存放在内核缓冲区里,只有等到这 1 个字节数据到达时,HTTP/2 应用层才能从内核中拿到数据,这就是 HTTP/2 队头阻塞问题。
16、HTTP/3
    TCP协议换成了UDP协议 加上了基于QUIC协议的可靠传输
    无队头阻塞 当某个流发生丢包时,只会阻塞这个流,其他流不会受到影响,因此不存在队头阻塞问题
    更快的建立连接
    连接迁移  TCP 传输协议的 HTTP 协议,由于是通过四元组当移动设备的网络从 4G 切换到 WIFI 时,意味着 IP 地址变化了,那么就必须要断开连接,然后重新建立连接 QUIC 协议没有用四元组的方式来“绑定”连接,
        而是通过连接 ID因此即使移动设备的网络变化后,导致 IP 地址变化了,只要仍保有上下文信息

    

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
HTTP(HyperText Transfer Protocol)是一种用于在网络中传输超文本的协议。它是客户端和服务器之间进行通信的规则集。下面是一些HTTP协议的基础知识: 1. HTTP通信是无状态的:HTTP协议本身不保留任何关于先前请求或响应的信息。每个HTTP请求都是独立的,服务器不会记住之前的请求。 2. 请求方法:HTTP定义了不同的请求方法,常用的有GET、POST、PUT、DELETE等。GET用于获取资源,POST用于提交数据,PUT用于更新资源,DELETE用于删除资源。 3. URL:统一资源定位符(URL)是用于标识和定位资源的地址。它由协议类型(如http://)、主机名、可选的端口号、路径和查询参数组成。 4. 请求头:HTTP请求包含一些元数据,称为请求头。请求头包含了一些关于请求的附加信息,如User-Agent、Accept-Language等。 5. 响应状态码:HTTP响应包含一个状态码,用于表示请求的处理结果。常见的状态码包括200(成功)、404(未找到)和500(服务器内部错误)等。 6. 响应头:HTTP响应也包含一些元数据,称为响应头。响应头包含了一些关于响应的附加信息,如Content-Type、Content-Length等。 7. 实体:HTTP请求和响应中的有效载荷称为实体。通常,在请求中,实体是要发送给服务器的数据;在响应中,实体是服务器返回的数据。 这些是HTTP协议的一些基础知识,希望对你有帮助!如有更多问题,请继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值