首页 > 其他分享 >学习之Http协议

学习之Http协议

时间:2024-02-29 13:13:52浏览次数:25  
标签:协议 HTTP 1.1 报文 学习 服务器 Http 客户端

3.1 HTTP简介

1681522638617 1681522600239

HTTP 超文本传输协议 (HTTP-Hyper Text transfer protocol),是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过十几年的使用与发展,得到不断地完善和扩展。它是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。客户端与服务端通信时传输的内容我们称之为报文HTTP协议就是规定报文的格式。HTTP就是一个通信规则,这个规则规定了客户端发送给服务器的报文格式,也规定了服务器发送给客户端的报文格式。实际我们要学习的就是这两种报文。客户端发送给服务器的称为"请求报文",服务器发送给客户端的称为"响应报文"

3.1.1 发展历程

HTTP/0.9

  • 蒂姆伯纳斯李是一位英国计算机科学家,也是万维网的发明者。他在 1989 年创建了单行 HTTP 协议。它只是返回一个网页。这个协议在 1991 年被命名为 HTTP/0.9。

HTTP/1.0

  • 1996 年,HTTP/1.0 发布。该规范是显著扩大,并且支持三种请求方法:GET,Head,和POST。
  • HTTP/1.0 相对于 HTTP/0.9 的改进如下:
    • 每个请求都附加了 HTTP 版本。
    • 在响应开始时发送状态代码。
    • 请求和响应都包含 HTTP 报文头。
    • 内容类型能够传输 HTML 文件以外的文档。
  • 但是,HTTP/1.0 不是官方标准。

HTTP/1.1

  • HTTP 的第一个标准化版本 HTTP/1.1 ( RFC 2068 ) 于 1997 年初发布,支持七种请求方法:OPTIONS,GET,HEAD,POST,PUT,DELETE,和TRACE

  • HTTP/1.1 是 HTTP 1.0 的增强:

    • 虚拟主机允许从单个 IP 地址提供多个域。

    • 持久连接和流水线连接允许 Web 浏览器通过单个持久连接发送多个请求。

    • 缓存支持节省了带宽并使响应速度更快。

  • HTTP/1.1 在接下来的 15 年左右将非常稳定。

  • 在此期间,出现了 HTTPS(安全超文本传输协议)。它是使用 SSL/TLS 进行安全加密通信的 HTTP 的安全版本。

HTTP/2

  • 由IETF在2015年发布。HTTP/2旨在提高Web性能,减少延迟,增加安全性,使Web应用更加快速、高效和可靠。
  • 多路复用:HTTP/2 允许同时发送多个请求和响应,而不是像 HTTP/1.1 一样只能一个一个地处理。这样可以减少延迟,提高效率,提高网络吞吐量。
  • 二进制传输:HTTP/2 使用二进制协议,与 HTTP/1.1 使用的文本协议不同。二进制协议可以更快地解析,更有效地传输数据,减少了传输过程中的开销和延迟。
  • 头部压缩:HTTP/2 使用 HPACK 算法对 HTTP 头部进行压缩,减少了头部传输的数据量,从而减少了网络延迟。
  • 服务器推送:HTTP/2 支持服务器推送,允许服务器在客户端请求之前推送资源,以提高性能。
  • 改进的安全性:HTTP/2 默认使用 TLS(Transport Layer Security)加密传输数据,提高了安全性。
  • 兼容 HTTP/1.1:HTTP/2 可以与 HTTP/1.1 共存,服务器可以同时支持 HTTP/1.1 和 HTTP/2。如果客户端不支持 HTTP/2,服务器可以回退到 HTTP/1.1。

HTTP/3

  • 于 2021 年 5 月 27 日发布 , HTTP/3 是一种新的、快速、可靠且安全的协议,适用于所有形式的设备。 HTTP/3 没有使用 TCP,而是使用谷歌在 2012 年开发的新协议 QUIC

  • HTTP/3 是继 HTTP/1.1 和 HTTP/2之后的第三次重大修订。

  • HTTP/3 带来了革命性的变化,以提高 Web 性能和安全性。设置 HTTP/3 网站需要服务器和浏览器支持。

  • 目前,谷歌云、Cloudflare和Fastly支持 HTTP/3。Chrome、Firefox、Edge、Opera 和一些移动浏览器支持 HTTP/3。

标签:协议,HTTP,1.1,报文,学习,服务器,Http,客户端
From: https://www.cnblogs.com/drip3775/p/18043409

相关文章

  • 学习之请求和响应
    3.2请求和响应报文3.2.1报文的格式主体上分为报文首部和报文主体,中间空行隔开报文部首可以继续细分为"行"和"头"3.2.2请求报文客户端发给服务端的报文请求报文格式请求首行(请求行);GET/POST资源路径?参数HTTP/1.1(默认是通过GET请求获取服务器信......
  • 学习之请求报文
    3.2.2请求报文客户端发给服务端的报文请求报文格式请求首行(请求行);GET/POST资源路径?参数HTTP/1.1(默认是通过GET请求获取服务器信息)(通常表单提交信息到服务器用POST请求)请求头信息(请求头);空行;请求体;POST请求才有请求体浏览器f12网络下查看请求数据包......
  • 学习之@WebServlet
    3.1@WebServlet注解源码官方JAVAEEAPI文档下载地址JavaEE-Technologies(oracle.com)@WebServlet注解的源码阅读packagejakarta.servlet.annotation;importjava.lang.annotation.Documented;importjava.lang.annotation.ElementType;importjava.lang.ann......
  • 学习之生命周期
    Servlet生命周期4.1生命周期简介什么是Servlet的生命周期应用程序中的对象不仅在空间上有层次结构的关系,在时间上也会因为处于程序运行过程中的不同阶段而表现出不同状态和不同行为——这就是对象的生命周期。简单的叙述生命周期,就是对象在容器中从开始创建到销毁的过程。......
  • 学习之Session
    1.3.2HttpSession的使用用户提交form表单到ServletA,携带用户名,ServletA获取session将用户名存到Session,用户再请求其他任意Servlet,获取之间存储的用户定义表单页,提交用户名,提交后<formaction="servletA"method="post">用户名:<inputtype=......
  • 学习之Cookie
    1.2.3Cookie的提交路径访问互联网资源时不能每次都需要把所有Cookie带上。访问不同的资源时,可以携带不同的cookie,我们可以通过cookie的setPath(Stringpath)对cookie的路径进行设置从ServletA中获取cookiepublicclassServletAextendsHttpServlet{@Override......
  • 学习之会话
    一会话1.1会话管理概述1.1.1为什么需要会话管理HTTP是无状态协议无状态就是不保存状态,即无状态协议(stateless),HTTP协议自身不对请求和响应之间的通信状态进行保存,也就是说,在HTTP协议这个级别,协议对于发送过的请求或者响应都不做持久化处理简单理解:浏览器发送请......
  • 解析HTTP错误码400 Bad Request及其常见原因与解决方法
    解析HTTP错误码400BadRequest及其常见原因与解决方法1.引言在进行web开发过程中,我们经常会遇到各种HTTP错误码。HTTP错误码用于表示服务器对请求的响应状态,帮助我们定位和解决问题。本文将重点解析HTTP错误码400BadRequest,探讨其常见原因和解决方法。HTTP错误码的作用和分类......
  • 学习之XML
    一XMLXML是EXtensibleMarkupLanguage的缩写,翻译过来就是可扩展标记语言。所以很明显,XML和HTML一样都是标记语言,也就是说它们的基本语法都是标签。可扩展三个字表面上的意思是XML允许自定义格式。但这不代表你可以随便写。在XML基本语法规范的基础上,你使用的那些第三......
  • 解析HTTP错误码400 Bad Request及其常见原因与解决方法
    解析HTTP错误码400BadRequest及其常见原因与解决方法1.引言在进行web开发过程中,我们经常会遇到各种HTTP错误码。HTTP错误码用于表示服务器对请求的响应状态,帮助我们定位和解决问题。本文将重点解析HTTP错误码400BadRequest,探讨其常见原因和解决方法。HTTP错误码的作用和分类......