1_HTTP协议

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

协议 Protocol

合同,共同遵守的规则

A给B发送一段信息

内容: what do you wanna eat for dinner; 晚饭想吃什么

规则: 英文 中文 应用层协议 数据如何解析如何使用 http ftp ... ...

方式: 微信 QQ 短信 传输层协议 数据如何发送和接收 tcp udp

地址: 微信号 QQ号 电话号 网络协议 数据接收和发送的位置 ip

HTTP协议介绍

超文本传输协议 传输超文本的协议

什么是超文本

html页面上全是文字,但是浏览器解析之后,展现出来的页面是非常丰富的

超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。超文本更是一种用户界面范式,用以显示文本及与文本之间相关的内容。

什么是HTTP协议

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写, HTTP是万维网(WWW:World Wide Web)的数据通信的基础。

HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

HTTP协议特点

1支持客户/服务器模式

HTTP协议支持客户端服务端模式,需要使用浏览器作为客户端来访问服务端。

2简单快速

客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、POST等。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3灵活

HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。

4无连接

每次请求一次,释放一次连接。所以无连接表示每次连接只能处理一个请求。优点就是节省传输时间,实现简单。我们有时称这种无连接为短连接。对应的就有了长链接,长连接专门解决效率问题。当建立好了一个连接之后,可以多次请求。但是缺点就是容易造成占用资源不释放的问题。当HTTP协议头部中字段Connection:keep-alive表示支持长链接。

5单向性

服务端永远是被动的等待客户端的请求。

6无状态

HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。为了解决HTTP协议无状态,于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session。

HTTP协议发展和版本

http协议在1991年发布第一个版本版本号为0.9。随后WWW联盟(WWW Consortium-W3C)于1994年成立,http协议被纳入到W3C组织中进行维护和管理。

http1.0

最早在1996年在网页中使用,内容简单,所以浏览器的每次请求都需要与服务器建立一个TCP连接,服务器处理完成后立即断开TCP连接(无连接),服务器不跟踪每个客户端也不记录过去的请求(无状态),请求只能由客户端发起(单向性)。

http1.1

到1999年广泛在各大浏览器网络请求中使用,HTTP/1.0中默认使用Connection: close。在HTTP/1.1中已经默认使用Connection: keep-alive(长连接),避免了连接建立和释放的开销,但服务器必须按照客户端请求的先后顺序依次回送相应的结果,以保证客户端能够区分出每次请求的响应内容。通过Content-Length字段来判断当前请求的数据是否已经全部接收。不允许同时存在两个并行的响应。

1.1中最重要的一个特点是支持“长连接”,即“一次连接可以多次请求”。

HTTP 1.1支持持久连接(HTTP/1.1的默认模式使用带流水线的持久连接),在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请求和应答仍然需要使用各自的连接。HTTP 1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需要的时间。

http2.0

长连接

在HTTP/2中,客户端向某个域名的服务器请求页面的过程中,只会创建一条TCP连接,即使这页面可能包含上百个资源。 单一的连接应该是HTTP2的主要优势,单一的连接能减少TCP握手带来的时延。HTTP2中用一条单一的长连接,避免了创建多个TCP连接带来的网络开销,提高了吞吐量。

多路复用 (Multiplexing)

HTTP2.0中所有加强性能的核心是二进制传输,在HTTP1.x中,我们是通过文本的方式传输数据。在HTTP2.0中引入了新的编码机制,所有传输的数据都会被分割,并采用二进制格式编码。

多路复用,连接共享。不同的request可以使用同一个连接传输(最后根据每个request上的id号组合成正常的请求)。

HTTP2.0中,有两个概念非常重要:帧(frame)和流(stream)。

帧是最小的数据单位,每个帧会标识出该帧属于哪个流,流是多个帧组成的数据流。

所谓多路复用,即在一个TCP连接中存在多个流,即可以同时发送多个请求,对端可以通过帧中的表示知道该帧属于哪个请求。在客户端,这些帧乱序发送,到对端后再根据每个帧首部的流标识符重新组装。通过该技术,可以避免HTTP旧版本的队头阻塞问题,极大提高传输性能。

首部压缩(Header Compression)

由于1.1中header带有大量的信息,并且得重复传输,2.0使用encoder来减少需要传输的hearder大小。

服务端推送(Server Push)

在HTTP2.0中,服务端可以在客户端某个请求后,主动推送其他资源。

可以想象一下,某些资源客户端是一定会请求的,这时就可以采取服务端push的技术,提前给客户端推送必要的资源,就可以相对减少一点延迟时间。在浏览器兼容的情况下也可以使用prefetch。

更安全

HTTP2.0使用了tls的拓展ALPN做为协议升级,除此之外,HTTP2.0对tls的安全性做了近一步加强,通过黑名单机制禁用了几百种不再安全的加密算法。

HTTP协议基础(HTTP 1.1 http协议(目前主要是HTTP 1.1)是目前世界上使用最多的应用层协议,是互联网的基础,同时它也是程序开发中最基础的协议,所有程序员都应该知道http协议。这里根据本人目前的工作学习情况,参考一些规范,简单总结一下HTTP协议的一些基础知识。 主要参考规范: rfc2616 - Hypertext Transfer Protocol – HTTP/1.1 rfc3986 - Uniform 阅读详情

相关推荐

HTTP1.1协议总结

http协议基础

weixin_43155199的博客 207

HTTP1.1协议详解

HTTP 1.1是一种基于文本的互联网实体信息交互协议,是Web上任何数据交换和客户端-服务器交互的基础。它允许获取各种类型的资源,如HTML文档,并支持在互联网上交换和传输数据。HTTP 1.1定义了客户端如何向服务器发送请求以及服务器如何向客户端返回响应。HTTP 1.1使用请求-响应模型,其中客户端发送一个请求,服务器响应请求并返回数据。请求和响应都采用相同的标准互联网消息格式,包括消息头和消息体。HTTP 1.1支持持久连接,允许在同一个TCP连接中发送多个请求和接收多个响应。

技术人集结地 6462

HTTP协议学习笔记--http1.0、http1.1http2.0、https、http3

参考文章《HTTP协议:菜鸟入门系列》 - 老_张 - 博客园 参考文章 HTTP2 详解 - 简书 参考文章 HTTP2.0协议全文翻译 参考文章 探索HTTP/2: 流的状态(原) - John Jiang - BlogJava HTTP/1.x http1.x是基于文本的通信协议,分为start line,http header和http body三个部分。 根据发起方的不同 start...

不知道是谁的博客 3348

网络传输协议之:Http1Http2、Http3

一、什么是HTTPHTTP(HyperText Transfer Protocol),是超文本传输协议,是目前互联网上要用最广泛的一种网络协议,所有的 WWW文件都必须遵守该标准。HTTP又使用了可靠的数据传输协议TCP协议,不会产生数据丢失和损坏。(HTTP协议属于应用层协议HTTP的工作流程 浏览器与服务器建立TCP连接,即三次握手 TCP连接成功,浏览器发出HTTP请求命令 服务端接收请求并返回HTTP响应 服务器关闭连接,即四次挥手 浏览器解析请求的资源 connection:

qq_45923489的博客 1万+

HTTP 协议的前世今生】HTTP 1.0、HTTP 1.1HTTP 2.0

本篇博客将从 HTTP 协议的概念出发,分别介绍 HTTP 协议各个版本的特点,以及对 HTTP 协议状态码和 HTTPS 协议进行说明。 首先,我们先来了解下 HTTP 协议的概念。

盛夏温暖流年 2032

http1.1协议http2.0协议的比较

摘要: HTTP/1.1HTTP/2.0的核心差异在于性能优化与协议架构。HTTP/2.0采用二进制分帧、多路复用和HPACK头部压缩,彻底解决队头阻塞问题,提升传输效率,尤其在高延迟场景下加载速度可提升3倍。同时支持服务器主动推送资源与请求优先级控制。尽管HTTP/2.0依赖TLS加密且需服务器支持,但其在并发性能上的优势显著,推荐现代Web应用优先部署。旧系统可逐步升级,新项目直接采用HTTP/2.0以优化用户体验。

技术人集结地 1305

HTTP协议基础-1-HTTP简介

之前一直不重视HTTP协议,很多概念是半懂不懂的,加上我快学习完了Java web开发中的servlet部分,逐渐对HTTP中的请求和响应以及其他部分有了一点了解。现在开始准备梳理下接口自动化测试,博客里以及完成单元测试框架的梳理(Junit和TestNG), 在做接口测试梳理之前,我还是有必要系统地学习和复习下HTTP协议。 其实我们经常说,接口测试很简单,比功能自动化测试还要简单。这种简单是...

Anthony_tester的博客 3333

HTTP1.0协议详解

HTTP是由蒂姆·伯纳斯·李(Tim Berners-Lee)爵士创造的。他在1989年提出了一个构想,借助多文档之间相互关联形成的超文本(HyperText),连成可参阅的 WWW(World Wide Web,万维网),以帮助远隔两地的研究者们共享知识。在这个构想中,他提出了3项WWW构建的关键技术:HTML, URI, HTTP。因此,蒂姆·伯纳斯·李(Tim Berners-Lee)被公认为是万维网的发明者,互联网之父。HTTP1.0是一种无状态、无连接的应用层协议

技术人集结地 2819

http协议http事务、URL、http请求的方式、响应码信息、http1.0和1.1区别

1.什么是http协议超文本传送协议 (HTTP-Hypertext transfer protocol) 定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。2.什么是HTTP的事务(

牧之 2924

HTTP/1.1协议

HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间数据交换的过程。   1.Http1.0和1.1 Http1.0:请求一次,连接自动断开。 Http1.1:一次连接,可以发起多次请求。   2.在windows中使用telnet发起Http请求 telnet loca

wjlwangluo的博客 598

HTTP协议演进:从HTTP/1.0到HTTP/1.1

本文回顾了HTTP协议1.0到1.1的演变过程,分析了两个版本中引入的关键特性,如请求方法的增加、HTTP首部的使用、响应状态码的标准化以及对多媒体内容支持的增强。文章还探讨了Host头部字段的强制要求对虚拟主机托管的影响,并指出这些变化如何推动了Web的繁荣发展。

weixin_31597759的博客 335

HTTP协议基础_1_HTTP简介

进行接口测试的前提就是要熟悉HTTP协议; 当你在浏览器地址栏敲入“http://www.baidu.com/”,然后猛按回车,呈现在你面前的,将是百度的首页了我想你有必要去了解这一系列的处理流程,在这期间,浏览器和服务器到底是如何打交道的?服务器又是如何处理的?浏览器又是如何将网页显示给用户的呢?… 本文中,我将根据http协议的有关知识,跟大家讲解一些web开发的本质。 何为http协议(Hy...

安小静-- 251

TCP、HTTP/1.1HTTP/2 协议

理解这些协议的差异有助于优化网络应用设计(如减少DNS查询、启用压缩、利用CDN等)。实际开发中,HTTP/2已成为主流,但在某些旧系统或特殊场景(如长连接)中仍需权衡选择。TCP、HTTP/1.1HTTP/2 是互联网通信中的核心协议,它们在网络分层中处于不同层级,各有特点且逐步演进。

weixin_42713787的博客 829

HTTP 协议的发展历程:从 HTTP/1.0 到 HTTP/2.0

HTTP 协议的发展历程:从 HTTP/1.0 到 HTTP/2.0

1492

HTTP1.1协议-RFC2616-中文版

说明 本文档规定了互联网社区的标准组协议,并需要讨论和建议以便更加完善。请参考 “互联网官方协议标准”(STD 1)来了解本协议的标准化状态。本协议不限流传发布。 版权声明 Copyright (C) The Internet Society (1999). All Rights Reserved. 摘要 超文本传输协议HTTP)是一种为分布式,合作式,超媒体信息系统...

Yunwubanjian的博客 1395

HTTP协议发展:http1.0 http1.1 http2.0 http3.0

HTTP协议发展http1.0 http1.1 http2.0 http3.0

qq_45997483的博客 315

Http1.1协议常识3.1

http1.1协议常识

gulanga5的博客 1130

网络协议HTTP/1HTTP/2 及 HTTP/3详解

HTTP(Hyper Text Transformer Protocol,超文本传输协议)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。它是一个应用层协议,承载于TCP协议之上。

富朝阳的博客 4070
上一篇: 4_Tomcat常见配置
下一篇: 1_认识JAVAWEB项目结构
BookerABC
博客等级 码龄4年 240粉丝 459原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值