• http协议版本


    HTTP协议介绍

    • HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。

    • HTTP支持持久连接,在HTTP / 0.9和1.0中,连接在单个请求/响应对之后关闭。在HTTP / 1.1中,引入了保持活动机制,其中连接可以重用于多个请求。

    • 可分为五个版本,分别是0.9、1.0、1.1、2、3。

    版本差异

    1.1 HTTP/0.9

    • 只有一个命令GET。

    • 服务器只能回应HTML格式的字符串。

    • 服务器发送完毕,就关闭TCP连接。

    1.2 HTTP/1.0

    • 除了GET,还引入了POST和HEAD方法

    • 不仅可以传输文字,还能传输图像、视频、二进制文件。

    • 每个TCP连接只能发送一个请求。发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接。

    TCP连接的新建成本很高,因为需要客户端和服务器三次握手,并且开始时发送速率较慢(slow start)。所以,HTTP 1.0版本的性能比较差。随着网页加载的外部资源越来越多,这个问题就愈发突出了。

    1.3 HTTP/1.1

    • 引入了持久连接(persistent connection)keep-alive,即TCP连接默认不关闭,可以被多个请求复用。

    • 支持管道(pipeline)网络传输,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。

    • 提供身份认证、状态管理和 Cache 缓存等机制相关的请求头和响应头

    • 新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 。

    1.4 HTTP/2

    • 基于 HTTPS 的,所以 HTTP/2 的安全性高。

    • 会压缩头(Header):如果你同时发出多个请求,他们的头是一样的或是相似的,那么,协议会帮你消除重复的部分。

    • 头信息和数据体都是二进制,并且统称为帧(frame):头信

    1.5 HTTP/3

    HTTP/2 主要的问题在于,多个 HTTP 请求在复用一个 TCP 连接,下层的 TCP 协议是不知道有多少个 HTTP 请求的。所以一旦发生了丢包现象,就会触发 TCP 的重传机制,这样在一个 TCP 连接中的所有的 HTTP 请求都必须等待这个丢了的包被重传回来。所以 HTTP/3 把 HTTP 下层的 TCP 协议改成了 UDP。

    状态码

    状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

    • 1xx:指示信息–表示请求已接收,继续处理

    • 2xx:成功–表示请求已被成功接收、理解、接受

    • 3xx:重定向–要完成请求必须进行更进一步的操作

    • 4xx:客户端错误–请求有语法错误或请求无法实现

    • 5xx:服务器端错误–服务器未能实现合法的请求

    常见状态代码、状态描述、说明:

    • 200 OK //客户端请求成功

    • 400 Bad Request //客户端请求有语法错误,不能被服务器所理解

    • 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

    • 403 Forbidden //服务器收到请求,但是拒绝提供服务

    • 404 Not Found //请求资源不存在,eg:输入了错误的URL

    • 500 Internal Server Error //服务器发生不可预期的错误(服务器内部错误)

    • 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

     

  • 相关阅读:
    SpringBoot整合Flyway(数据库版本迁移工具)
    Java并发编程实战 05等待-通知机制和活跃性问题
    Java并发编程实战 04死锁了怎么办?
    Java并发编程实战 03互斥锁 解决原子性问题
    Java并发编程实战 02Java如何解决可见性和有序性问题
    Flutter学习笔记(40)--Timer实现短信验证码获取60s倒计时
    Flutter学习笔记(39)--BottomNavigationBar底部item超过3个只显示icon,不显示title
    Flutter学习笔记(38)--自定义控件之组合控件
    Flutter学习笔记(36)--常用内置动画
    Flutter学习笔记(37)--动画曲线Curves 效果
  • 原文地址:https://www.cnblogs.com/yjh1995/p/16368320.html
Copyright © 2020-2023  润新知