什么是http协议?get和post请求有什么区别?http请求content-Type有几种,有什么区别?http适合什么场景?http状态码有哪些?

在Ultralytics YOLO中添加/更换模块详细指南 使用参数继承 my_module_args: &my_args [64, 3, 0.5] # 定义参数模板 backbone: - [-1, 1, MyModule, *my_args] # 引用参数。 阅读详情

这里是修真院后端小课堂,每篇分享文从

【什么是http协议?get和post请求有什么区别?http请求content-Type有几种,有什么区别?http适合什么场景?http状态码有哪些? 】

【修真院JAVA小课堂】 什么是http协议?get和post请求有什么区别?http请求content-Type有几种,有什么区别?http适合什么场景?http状态码有哪些?

大家好,我是IT修真院西安分院第四期的学员赵立鼐,一枚正直纯洁善良的JAVA程序员,今天给大家分享一下,修真院官网JAVA任务二,深度思考中的知识点——什么是http协议?

(1)背景介绍:

HTTP的诞生

为知识共享而规划Web

1989年3月,互联网还只是属于少数人。在这一互联网的黎明期,HTTP诞生了。 CERN(欧洲核子研究组织)的蒂姆·博纳斯-李(Tim BernersLee)博士提出了一种能让远隔两地的研究者们共享知识的设想。

最初设想的理念是:借助多文档之间相互关联形成的超文本(HyperText),连成可以相互参阅的WWW(World Wide Web,万维网) 现在已经提出了3项WWW构建技术,分别是:把SGML(标准通用标记语言)作为页面的文本标记语言的HTML(HyperText Markup Language,超文本标记语言);作为文档传递协议的HTTP;指定文档所在地址的URL(Uniform Resource Locator,统一资源定位符)。

WWW 这一名称,是Web浏览器当年用来浏览超文本的客户端应用程序时的名称。现在则用来表示这一系列的合集,也可简称为Web.

驻足不前的HTTP

HTTP于1990年问世。那时的HTTP并没有作为正式的标准被建立。现在的HTTP其实含有HTTP1.0之前版本的意思,

因此被称为HTTP/0.9

HTTP正式作为标准被公布是在1996年的5月,版本被命名为HTTP/1.0,并记载于RFC1945。虽说是初期标准,但该协议标准至今仍被广泛使用在服务器端。

HTTP/1.1

1997年1月公布的HTTP/1.1是目前主流的HTTP协议版本。当初的标准是RFC2068,之后发布的修订版RFC2616就是当前最新的版本。

可见,作为web文档传输协议的HTTP,它的版本几乎没有更新。新一代HTTP/2.0正在制定中,但要达到较高的使用覆用率,仍需加以时日。

当年的HTTP协议的出现主要是为了解决文本传输的难题。由于协议本身非常简单,于是在此基础上设想了很多应用方法并投入了实际应用。现在的HTTP协议已经超出了 Web这个框架的局限,被运用到了各种场景里。

(2)知识剖析:

什么是HTTP协议?

HTTP协议用于客户端和服务端之间的通信。 HTTP协议和TCP/IP协议族内的其他众多协议相同,用于客户端和服务端之间的通信。 请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。

肯定是先从客户端开始建立通信的,服务器端在没有接受到请求之前不会发送响应。

请求报文

请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成。

响应报文

响应报文基本是由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成。

HTTP是不保存状态的协议

HTTP是一种不保存状态,既无状态协议。

HTT协议本身不对请求和响应之间的通信状态进行保存。也就是说HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。

使用HTTP协议,每当有新的请求发送过来时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应报文信息。这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把HTTP协议设计成如此简单的。

告知服务器意图的HTTP方法

GET:获取资源

GET请求用来请求访问已被URI识别的资源。指定的资源经服务器端解析后返回响应内容。也就是说,如果请求资源是文本,那就保持原样返回;如果是像CGI(Common Gateway Interface,通用网关接口)那样的程序,则返回经过执行后的输出结果。

POST:传输实体主体

POST方法用来传输实体的主体

虽然用GET方法也可以传输实体的主体,但一般不用GET方法进行传输,而是用POST方法。

虽说POST的功能与GET很相似,但POST的主要目的并不是获得响应的主体内容。

HTTP只是行为准则,而TCP才是GET和POST怎么实现的基准。

区别:GET产生一个TCP数据包,POST请求产生两个TCP数据包

对于GET方式的请求,浏览器会把HTTP Header和data一并发送出去,服务器响应200(返回数据)

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)

持久连接节省通信量

HTTP协议的初始版本中,没进行一次HTTP通信就要断开一次TCP连接,以当年的通信情况来说,因为都是些容量很小的文本传输,所以即使这样也没有多大问题。可随着HTTP的普及,文档中包含大量图片的情况多了起来。

比如,使用浏览器浏览一个包含很多张图片的HTML页面时,在发送请求访问HTML页面资源的同时,也会请求该HTML页面包含的其他资源。因此,每次的请求都会造成无畏的TCP连接建立和断开,增加通信量的开销。

持久连接:

为解决上述TCP连接问题,HTTP/1.1和部分HTTP/1.0想出了持久连接(HTTP Persistent Connections,也称为HTTP keep-alive 或 HTTP connection reuse)的方法。持久连接的特定是:只要任意一端没有明确提出断开连接,则保持TCP连接状态。

持久连接旨在建立一次TCP连接后进行多次请求和响应的交互。

管线化: 持久连接使得多数请求以管线化方式发送成为可能。从前发送请求后需等待并收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应亦可直接发送下一个请求。这样就能够做到同时并行发送多个请求,而不需要一个接一个的等待响应了。

状态码告知从服务器端返回的请求结果

状态码的职责是当客户端向服务器端发请求时,描述返回的请求结果。借助状态码,用户可以知道服务器是正常处理了请求,还是出现了错误。

状态码如 200 OK,以3位数字和原因短语组成。

数字中的第一位指定了响应类别,后两位无分类。响应类别有以下5种:

1×× Informational(信息性状态码) 接受的请求正在处理

2×× Success (成功状态码) 请求正常处理完毕

3×× Redirection(重定向状态码) 需要进行附加操作以完成请求

4×× Client Error(客户端错误状态码) 服务器无法处理请求

5×× Server Error(服务器错误状态码) 服务器处理请求出错

Content-Type 说明了实体主体内对象的媒体类型。

常见的媒体格式类型如下:

text/html: HTML格式

text/plain:纯文本格式

text/xml: xml格式

image/gif: gif图片格式

image/jpeg: jpg图片格式

image/png:png图片格式

(3)常见问题:

都有哪些常见的HTTP错误码?

(4)解决方案:

4开头的响应结果表明客户端是发生错误的原因所在

400 Bad Request

该状态码表示请求报文中存在语法错误。当错误发生时,需要修改请求内容后再次发送请求。

401 Unauthorized

该状态码表示发送的请求需要有通过HTTP认证(BASIC认证、DIGEST认证)的认证信息。另外若之前已进行过 1次请求,则表示用户认证失败。

403 Forbidden

该状态码表明对请求资源的访问被服务器拒绝了。服务器端没有必要给出拒绝的详细理由,但如果想做说明的话,可以 在实体部分对原因进行描述,这样就能让用户看到了。

未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源IP地址试图访问)等列举的情况都可能是发生403的原因。

404 Not Found

该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。

5开头的响应结果表明服务器本身发生错误。

500 Internal Server Error

该状态码表明服务器端在执行请求时发生了错误。也有可能是Web应用存在BUG或某些临时的故障。

503 Service Unavailable

该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

状态码和状况的不一致

不少返回的状态码响应都是错误的,但是用可能察觉不到这点。比如Web应用程序内部发生错误,状态码依然返回200 OK ,这种情况也经常遇到。

(5)编码实战:

尽可能的去寻找在真实项目中在用的。如果你能找到某个网站在用你说的知识点,这是最好的。学以致用,否则当成练习题就没有意义了。多准备一些demo,讲解过程中将知识点和demo结合,便于大家理解所讲解的知识点。

(6)拓展思考:

各种协议与HTTP协议的关系

我们可以通过下面这张图来了解下IP协议、TCP协议和DNS服务在使用HTTP协议的通信过程中各自发挥了那些作用。

(7)参考文献:

书籍: 图解HTTP

作者: [日]上野宣

(8)更多讨论:

Q1:鲁伯良: 1、 HTTP的缺点

a、通信使用明文不加密,内容可能被窃听

b、不验证通信方身份,可能遭到伪装

c、无法验证报文完整性,可能被篡改

Q2:刘优:2、 HTTP和HTTP的关系

A2: 赵立鼐 : HTTPS就是HTTP加上加密处理(一般是SSL安全通信线路)+认证+完整性保护

Q3:秦永辉: 3、 什么是HTTP协议

A3: 赵立鼐: HTTP:超文本传输协议。使用的是可靠的数据传输协议,在传输的过程中不会被损坏或产生混乱。HTTP可以从遍布全世界的Web服务器商将各种信息块迅速、便捷、可靠地搬移到人们桌面上的Web浏览器上去。

(9)鸣谢:

感谢刘优师兄,此教程是在他们之前技术分享的基础上完善而成。

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

洛奇 服务器文件,MabinogiG20S2 [洛奇G20服务端] Code:Titles:>set_title /id: /add /remove Parameters for titles>set_title /id:60001 /add add devcat title>set_title /id:60001 /remove remove devcat title===========================... 阅读详情

相关推荐

GD32F303 ADC+DMA实战:用硬件过采样搞定多通道数据采集(附完整代码)

本文详细介绍了GD32F303系列MCU通过ADC+DMA结合硬件过采样技术实现多通道数据采集的实战方案。从硬件设计要点到软件配置全解析,包括时钟树配置、ADC模块初始化和DMA传输设置,提供了完整的代码示例和优化技巧,帮助工程师构建高精度、低功耗的数据采集系统。

weixin_30466039的博客 318

HTTP协议的请求方式有哪些?

其中,GET和POST请求是最常见的两种请求方式,常用于前端页面的数据请求和提交。TRACE请求和CONNECT请求较少使用,OPTIONS请求则用于查询服务器支持的请求方法。3. HEAD请求:请求获取由Request-URI所标识的资源的响应消息报头。8. OPTIONS请求:请求查询服务器的性能,或者查询与资源相关的选项和需求。6. TRACE请求:请求服务器回送收到的请求信息,主要用于测试或诊断。1. GET请求:用于请求获取Request-URI所标识的资源。

weixin_49631705的博客 2539

Vivado工程芯片型号更换全流程:从IP更新到生成新bit文件(避坑指南)

本文详细介绍了Vivado工程中更换芯片型号的全流程,包括IP更新、约束文件适配和生成新bit文件的关键步骤。特别针对FPGA开发中常见的兼容性问题提供避坑指南,帮助开发者高效完成芯片迁移,确保设计稳定性和性能优化。

weixin_42549451的博客 297

HTTP的8种请求方式及常用请求方式的解析

HTTP,即超文本传输协议,是一种实现客户端和服务器之间通信的响应协议,它是用作客户端和服务器之间的请求。客户端(浏览器)会向服务器提交HTTP请求;然后服务器向客户端返回响应;其中响应包含有关请求的状态信息,还可能包含请求的内容。HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式 其中: HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。 HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TR

weixin_48520816的博客 6万+

刷题单向链表

实现一个数据结构,维护一张表(最初只有一个元素 11)。接下来 qq 行,每行表示一次操作,操作具体间题目描述。a[i] 里面放的是下一个元素,为0代表链表结束。如单链表1->4 -> 2->3->0用数组表示是。对于每个操作 2,输出一个数字,用换行隔开。第一行一个整数 qq 表示操作次数。

power的专栏 1714

从0开始使用ArcGIS实现克里金(Kriging)插值(适用数学建模竞赛,详解)

适用:数学建模学习中遇到需要进行克里金(Kriging)插值的任务。希望尽快上手,选择出恰当的半函数模型,并获得插值后的图片。 详细步骤: 一、准备数据 在excel中准备需要进行克里金插值的内容,应该包括至少三列:X坐标,Y坐标,数据。在每一列的列首做好标记,方便导入ArcMap后对应。注意存储时存为xls文件。 二、将数据导如导ArcMap 点击下面这个标记,把数据文件添加到ArcMap。 如果是初次使用的化,可能会不知道进入添加数据对话框之后如何操作。这时应该先点击红框标记的图标,连接到文件夹。

east_fence的博客 4万+

HTTP协议的8种请求类型以及POST与GET的区别

点击查看 GET 方法与 POST 方法的使用时机 HTTP协议简介 超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。HTTP 的工作方式是客户机与服务器之间的请求-应答协议。web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。例如:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。 ...

Hern(宋兆恒) 4253

【UE 反射】反射的原理是什么?如何使用机制?

静态类型检查确保了类型的早期一致性和高效的代码执行,但减少了灵活性。动态类型检查提供了更大的灵活性,但增加了运行时的开销和潜在的错误。反射作为一种动态特性,无论是在静态类型语言还是动态类型语言中,都提供了强大的运行时类型操作能力,但也伴随着性能和安全性方面的权衡。通过理解这些联系,开发者可以在不同的编程语言和应用场景中选择适合的类型检查方式和反射机制,以实现所需的动态行为和灵活性,同时保证性能和安全性。

hhw_hhw的博客 6031

HTTP协议中,Get和Post有什么区别?分别适用什么场景?

get传送数据长度有限制,Post没有。 get通过url传递,在浏览器地址栏可见,post是在文中传递。 get安全性相对较低,post安全性相对较高 适用场景: post一般用于表单提交 get一般用于简单的数据查询,严格要求不是那么高的场景。 ...

ni15534789894的博客 764

【2024-06-21】网易互娱秋招实习笔试三道编程题解

恭喜发现宝藏!搜索公众号【TechGuide】回复公司名,解锁更多新鲜好文和互联网大厂的笔经面经。作者@TechGuide【全网同名】

试问道几许 1055

小米汽车车载多摄像头视频链路深度解析 | MAX96792/MAX96724/MAX96781 实战分享

通过合理的输入输出规划 + 虚拟通道管理 + 加串行策略,可以在成本和性能之间取得最佳平衡,这就是多摄像头系统设计的核心精髓。

weixin_43199439的博客 1545

HTTP中post和get的区别以及适合使用的场景

区别: 首先post和get是http请求的两种基本的方法: 1、GET将函数包含在URL中,POST通过request body传递参数 2、两者最大的区别是:get产生一个TCP数据包,post产生两个TCP数据包 但是,post和get本质上都是TCP连接,并无区别。 使用场合: GET:获取资源 get方法用来请求访问以被URL识别的资源 POST:传输实体主体 ...

WangY.H 1781

Unity之OpenXR+XR Interaction Toolkit实现 Gaze眼部追踪

在虚拟现实(VR)和增强现实(AR)应用中,眼动追踪是一项强大而受欢迎的技术。它可以让开发者更好地理解用户的注意力和行为,并创造出更加沉浸和智能的体验。在本文中,我们将探讨如何使用 Unity OpenXR 实现Gaze眼部追踪功能。

TxNet 1751

什么是http协议?Get和post请求有什么区别?http请求content-Type有几种?http适合什么场景?http状态码有哪些?

http是什么——腾讯视频1.背景介绍什么是http协议?http协议是一个属于应用层的面向对象协议,http是超文本传输协议的缩写,它是以传送www方式的传输超文本到本地浏览器的传送协议http是一个基于TCP/IP通信协议来传递数据(html文件,图片文件,查询结果等)http协议工作于客户端-服务端架构上,浏览器通过http客户端通过URL向HTTP服务器即web服务器发送所有请求.web服...

qq_36533646的博客 333

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

http请求content-Type有几种,有什么区别?http适合什么场景?http状态码有哪些?

这里是修真院后端小课堂,每篇分享文从 【http请求content-Type有几种,有什么区别?http适合什么场景?http状态码有哪些?】 大家好,我是IT修真院西安分院第4期的JAVA学员,一枚正直纯洁善良的JAVA程序员。今天给大家分享一下,什么是http协议?get和post请求有什么区别?http请求content-Type有几种,有什么区别?http适合什么场景?http状态码有哪些...

learning__java的博客 693

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

http请求content-Type有几种,有什么区别?http适合什么场景?http状态码有哪些?...

这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【http请求content-Type有几种,有什么区别?http适合什么场景?http状态码有哪些?】 大家好,我是IT修真院西安分院第4期的JAVA学员...

weixin_34067980的博客 577

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【Linux之旅】HTTP 协议解析:从请求格式到构建 Web 服务器

本文将从 HTTP 协议的请求/响应格式出发,逐一拆解 URL、请求方法、状态码、常用 Header、Connection 长连接等核心概念,亲手实现一个支持 GET 和 POST 的最简 HTTP 服务器,并逐步扩展为能返回静态文件、解析表单数据的功能完备的 Web 服务器。读完本文,你将彻底理解 HTTP 协议的底层约定,并能从头写出一个可被浏览器访问的真实 Web 后端。

2302_80243065的博客 2310

python,基于http协议,最常用的是GET和POST两种方法

基于http协议,最常用的是GET和POST两种方法。 接口文档需要包含哪些信息: 接口名称 接口功能 接口地址 支持格式 json/xml 请求方式 请求示例 请求参数(是否必填、数据类型、传递参数格式) 返回参数说明 以典型的(一两个)参数做为判断是否请求通过(重点是看响应的信息判断) 一、GET 1 import requests 2 import json 3 4 ...

ccc0824的专栏 5387

HTTP请求报文和HTTP响应报文

HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。 一. HTTP请求报文 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求体4个部分组成,下图给出了请求报文的一般格式。 or <request-line> <headers> <blank line> [<requ...

EmotionComputer 2005

【Linux网络】深入理解 HTTP 协议(三):静态资源服务、状态码与重定向实战

上一篇我们从零实现了 HTTP 协议的反序列化与基础响应,让浏览器能够成功访问我们的服务器并显示 “Hello World”。但一个真正的 Web 服务器远不止于此:它需要能够正确返回 HTML 页面、图片、视频等各种静态资源,能够处理用户访问不存在页面的情况,能够实现页面跳转,还需要能够接收用户提交的数据。本文将基于我们已有的模块化框架,一步步完善这些核心功能。我们会深入理解 HTTP 状态码的语义,掌握 Content-Type 的作用,实现优雅的 404 错误页面,并彻底搞懂重定向的底层原理。所有代码

会当凌绝顶,一览众山小 4055

post和get的区别

今天看了一篇蛮好的文章,分享记录方便以后查看学习 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.youkuaiyun.com/kebi007/article/details/103059900 IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们...

weixin_43881220的博客 194

HTTP协议— 基于 TCP 的请求-响应协议 相关交互过程详细介绍_http协议交互过程

因此,就会使用 Cookie 这种策略,比如:在用户登录页面完成身份验证之后,此时服务器就会给浏览器返回一个用户的身份信息,浏览器把这个信息就保存在一个特定的位置上,后续再访问同一网站的其他页面的时候,浏览器再自动的带上这个身份信息,服务器就可以直接识别了。请求正文中的内容一般是根据 Content-Type 规定的格式来返回信息的,不同的请求的需求都是不一样的,这里对内容就无法做过多讨论,下面是关于请求正文集中格式的介绍。但是对方的服务器不一定都支持所有的方法(或者不允许用户使用一些其他的方法的情况)。

2401_84978645的博客 615

HTTP协议(1)

HTTP (全称为 “超文本传输协议”) 是一种应用非常广泛的 应用层协议,往往是基于传输层的 TCP 协议实现的,它也是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议,是万维网通信的基础。

weixin_66672558的博客 866

Java EE:7.网络原理- HTTP/HTTPS(第四弹):HTTP 响应+构造 HTTP 请求

Java EE:7.网络原理- HTTP/HTTPS(第四弹):HTTP 响应+构造 HTTP 请求

要努力去发光,而不是被照亮~ 2454

HTTP 方法详解:GET、POST 和 PUT

HTTP 方法(GET、POST、PUT)用于客户端和服务器之间的通信。它们在输入、输出和传输内容上有显著区别。

SZ170110231的博客 5112

HTTP 协议

HTTP 是什么:客户端与服务器的通信协议,无连接、无状态;URL 结构:从协议到片段标识符,特殊字符需要 urlencode;请求响应格式:4 部分组成,空行是关键分隔;方法与状态码:GET 获取、POST 提交,200 成功、404 找不到;Header 作用:Content-Type 定义数据类型,Cookie 解决无状态;HTTPS 安全:加密层 + 证书,防止数据泄露和篡改。

w8848w的博客 1279
上一篇: Lambda表达式
下一篇: 生成json的几种方式
learning__java
博客等级 码龄8年 87粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值