当前位置: 首页 > 编程日记 > 正文

http协议进阶(三)http报文

一、报文流

http报文是在http应用程序之间发送的数据块(也可称为数据包)、这些数据块以一些文本的元信息(meta-information)开头,描述了报文的内容及含义,后面跟着

可选的数据部分,这些报文在客户端、服务器和代理之间流动;常说的术语“流入”、“流出”、“上游”、“下游”就是描述报文方向的

 

1、报文流入源服务器

http使用术语流入(inbound)和流出(outbound)来描述事务处理的方向;报文流入源服务器,工作完成后,流回用户的Agent代理中,如下图

 

2、报文向下游流动

不管是请求还是响应报文,所有报文都会向下游流动,所有报文发送者都在接收者的上游,如下图

 

二、报文的组成

http报文是简单的格式化数据块,如下图

每条报文包含一个客户端请求或者服务端响应,由三部分组成:1)对报文进行描述的起始行;2)包含属性的首部(header)模块;3)可选的,包含数据的主体(body)部分

起始行和首部就是由行分隔的 ASCII文本。每行都以一个由2个字符组成的行终止序列作为结束,包括一个回车符(ASCII码13)和一个换行符(ASCII码10),这个行终止

序列可以写为CRLF。(稳健的应用程序也应该接受单个换行符作为行的终止)

实体或报文的主体是一个可选数据块,与起始行和首部不同的是,主体中可包含文本或二进制数据,也可以为空

如上图,Content-type行说明了主体是一个纯文本文档,Content-length说明了主体有19字节

 

1、报文的语法

所有的http报文都分为请求报文响应报文,请求报文会向服务器发送一个请求动作,响应报文会将请求结果返回给客户端,其结构基本相同;下图显示了获取一张GIF图所需的请求和响应报文

这是请求报文的格式                                             这是响应报文的格式

<method> <request-URL> <version>                            <method> <status> <version>

<headers>                                                   <heraers> 

<entity-body>                                               <entity-body>

下面是对各部分的简述:

方法(method):客户端希望服务器对资源执行的动作,是一个单独的词,比如GET、HEAD、POST等

之前的博客http://www.cnblogs.com/imyalost/p/5630940.html中有简单介绍几种方法,不过后面会详细解释这些方法

请求URL(request-URL):命名了请求资源,或者URL路径组件的完整URL;如果直接与服务器进行对话,只要URL的路径是决定路径,通常不会出现问题(上一篇随笔有详细介绍URL......)

版本(version):报文所使用的http协议版本——HTTP/<major>.<minor>;其中主要版本号(major)和次要版本号(minor)都是整数,本篇后面详解

状态码(status-code):3位数字,描述请求过程中发生的情况,每个状态码第一位描述状态的一般类别(成功/错误),本篇后面解释http规范的状态码及其含义

之前的博客http://www.cnblogs.com/imyalost/p/5688169.html也有简单介绍

状态码还有一种可读版本,包含终止序列之前的版本;比如HTTP/1.1 200 NOT OK和HTTP/1.1 200 OK中原因短语不同,但同样被当做成功指示处理

首部(header):可以有0个或多个首部,每个首部包含一个名字,后面跟一个冒号,然后一个可选空格,接着一个值,最后是CRLF。首部由一个空行(CRLF)结束,表示首部列表的结束和实体主体的开始。

实体主体(entity-body):包含一个由任意数据组成的数据块。

 

2、起始行

所有http报文都以一个起始行作为开始;请求报文说明了要做什么,响应报文说明发生了什么

2.1 请求行

请求报文请求服务器对资源进行一些操作。请求报文起始行,称为请求行,包含一个方法和一个请求。

该方法描述了服务器应该执行哪些操作,请求URL描述了要对哪个资源执行这个方法,请求行中还包括http版本,告知服务器,客户端使用哪个版本http协议,由空格符分隔

上图中,请求方法为GET,请求URL为test/hi-there.txt,http版本为1.1。

 

2.2 响应行

响应报文承载了状态信息和操作产生的所有结果数据,将其返回给客户端。响应报文起始行,称为响应行,包含了使用的http版本,数字状态码,以及描述操作状态或文本形式的原因短语。

这些字段由空格符进行分隔,在上图中,http版本为1.0,状态码200(表示成功),原因短语为OK,表示文档被成功返回。

 

2.3 方法

请求的起始行以方法作为开始,方法用来告知服务器做什么。如上图,方法就是GET,下表列出一些现版本http有的一些方法

具体的方法介绍下面会介绍

 

2.4 状态码

状态码用来告诉客户端,发生了什么事;状态码位于响应的起始行中。状态码在每条响应报文的起始行中返回的,以一个数字和一个可读的状态组成;数字码便于程序进行差错处理,原因短语则便于理解

下面列出状态码的分类:

具体的方法介绍下面会介绍

 

2.5 原因短语

原因短语为状态码提供了文本形式的解释,和状态码成对出现,是状态码的可读版本,应用程序将其传给客户,说明在请求期间发生了什么;稍后会整理出一些状态码和其建议使用的一些原因短语

 

2.6 版本号

版本号会以http/x、y的形式出现在请求和响应报文的起始行中,为应用程序提供了一种将自己遵循的协议版本告知对方的方式

通信时最好使请求和响应的版本号保持一致,否则很容易造成误解,使程序无法识别

PS:版本号不会被当做分数处理,每个数字都是独立的,比如,HTTP/2.22版本高于HTTP/2.3

 

3、首部

http首部字段向请求和响应报文中添加一些附加信息;本质来讲,他们知识一些名/值对的列表。

 

3.1 首部分类

通用首部:即可出现在请求报文中,也可出现在响应报文中

请求首部:提供更多有关请求的信息

响应首部:提供更多有关响应的信息

实体首部:描述主体的长度和内容,或者资源本身

扩展首部:规范中没有定义的新首部

每个http首部都有一种简单的语法:名字后面是冒号(:),然后跟上可选的空格,再跟上字段值,最后以一个CRLF结束

 

3.2 首部延续行

将长的首部行分为多行可提高可读性,每行前面至少有一个空格或制表符(tab),例如

HTTP/1.1 200 OK

Conteng-Type: image/gif

Content-Length: 8572

Server: Test Server

Version 1.0

上面的例子,响应报文中包含一个Server首部,其值被划分为多个延续行,该首部完整值为Server: Test Server Version 1.0

 

4、实体的主体部分

http报文的第三部分为可选的实体主体部分,实体是主体的http报文的负荷,就是http要传输的内容,资源

http报文可承载很多类型的数字数据:图片、视频、HTML文档、软件应用程序、电子邮件等

 

三、方法

1、GET

GET是最常用的方法,通常用于请求服务器发送某个资源(资源是已被服务器识别或标识的)给客户端; 如下图

服务器在获取GET请求参数时用Request.QueryString,意思为获取地址栏中的参数,就是“?”后面的参数,如果是多个,就用&连起来

 

2、HEAD

HEAD和GET方法类似,但在响应中只返回首部,不返回实体的主体部分。使用HEAD方法,可以

*在不获取资源的情况下了解资源的实际情况(资源类型)

*通过查看状态码,确认资源是否存在(有效性)

*通过查看首部,测试资源是否被修改(如修改,资源修改时间等)

 

3、PUT

与GET相反,PUT方法会向服务器写入文档(有些系统会允许用户创建web界面,并用PUT方法直接将其安装到web服务器上)

PUT方法实际上就是让服务器用请求中包含的主体部分来创建一个由请求的URL命名的新文档;或者URL已存在的话,就用这个主体来替代它。

因为PUT允许用户对内容进行修改,所以现在很少用这个方法,如果使用了这个方法,都要求用户使用授权的密码登陆(后面会整理出来关于安全认证的相关内容)

 

4、POST

POST方法用来向服务器发送提交数据的请求,具体的内容这里就不赘述了,之前有写过关于这方面的随笔,里面介绍了post及它与get的区别等内容(http://www.cnblogs.com/imyalost/p/5630940.html

 

5、TRACE

客户端发起一个请求时,请求可能要穿过防火墙、代理、网关或者其他应用程序,每个中间节点可能都会修改原始的http请求,TRACE允许客户端在最终把请求发给服务器时,查看它最终的样子

TRACE请求会在目的服务器端发起一个“回环”诊断。最后一站服务器会弹回一个TEACE响应,并在响应报文主体中携带原始请求报文,这样客户端就可以查看在所有中间节点上,原始报文是否被修改或毁坏

 

6、OPTIONS

请求web服务器告知其支持的各种功能;可以询问服务器支持哪些方法,或者对某些特殊资源支持哪些方法(有些服务器可能只支持对一些特殊类型的对象使用特定操作)

为客户端提供了一种手段:不用实际访问资源就可判定访问各种资源的最优方式

 

7、DELETE

请求服务器删除请求URL所指定的资源;但客户端应用程序不一定会执行删除操作,因为http协议规范允许服务器在不通知客户端的情况下撤销请求。如下图

 

8、扩展方法

http被设计成可扩展的,这样新特性就不会使老的版本失效。扩展方法指的是没在HTTP/1.1中规范定义的,服务器为它管理的资源实现一些HTTP服务,为开发者提供了一种扩展这些HTTP服务能力的手段

下表列出了一些常用的扩展方法:

上面例子中的方法便于用过http将web内容发布到web服务器上

不是所有的扩展都是在正式规范中定义的,因此,扩展方法秉持“对发送内容要求严格,对所接受的内容宽容点”来处理一般的HTTP扩展方法很重要

 

四、状态码

响应报文的返回状态码分为五类,之前的随笔进行了介绍,这里就当做是补充吧

状态码是一种理解事务处理结果的便捷方式;下面列出一些常见的原因短语例子,都是目前最常用的HTTP/1.1规范推荐使用的

1、100~199——信息性状态码

100 Continue的目的是对这样的情况进行优化:http客户端应用程序有一个主体的实体部分要发送给服务器,但发送之前希望查看服务器是否会接受这个实体

 

1.1 客户端与100 Continue

如果客户端向服务器发送一个实体,并愿意在发送前等待100 Continue响应,那么客户端就要发送一个携带了值为100 Continue的EXpect请求首部;如果客户端没发送实体,

就不应发送100 Continue Expect首部。因此客户端只有在避免向服务器发送一个服务器无法处理或使用的较大的实体时,才应使用100 Continue

解决办法:发送了100 Continue的Expect首部值的客户端不应一直等待响应,超过一定时间(可设置),自动将实体发送出去;同时做好应对非预期100 Continue响应的准备

 

1.2 服务器与100 Continue

如果服务器收到带有值为100 Continue的Expect首部请求,它会用100 Continue或一条错误码来响应;服务器永远不应向没有发送100 Continue请求的客户端发送100 Continue状态码

如果服务器在发送100 Continue响应前收到部分或全部实体,说明客户端决定继续发送数据,此时,服务器不需要发送这个状态码,但读完请求,应继续返回一个最终状态码(跳过100 Continue状态)

如果服务器收到带有100 Continue的请求,且它决定在读完实体主体前结束请求,就不应仅仅发送一条响应并关闭连接,这样会影响客户端接收响应

 

1.3 代理与100 Continue

代理从客户端收到带有100 Continue期望的请求,有以下几种情况:

如果知道下游服务器是http/1.1兼容或不清楚下游服务器与哪一个版本兼容,应将Expect首部放在请求中向下转发

如果知道下游服务器只能与http/1.1以下的版本兼容,就应该以417 Expectation Failed错误进行响应

如果代理决定代表与http/1.1或之前的版本兼容的客户端,在其请求中放入Expect首部和100 Continue值,那么它不应将100 Continue转发给客户端

 

2、200~299——成功状态码

下面列车一些服务器用来表示成功的状态码,分别对应不同的请求

 

3、300~399——重定向状态码

告知客户端使用替代位置来访问它感兴趣的资源;或提供一个替代的响应而不是资源内容

或在资源已被移动情况下,发送一个重定向状态码和一个可选的Location首部告知客户端,资源已被移动,且在哪里可以找到寻找的资源,如下图:将请求重定向到新的位置

可通过某些重定向状态码对资源的应用程序本地副本与源服务器上的资源进行验证;比如http应用程序可以查看本地资源是否是最新的或者是否被修改过

总之,对那些包含了重定向状态码的非HEAD请求进行响应时,最好包含一个实体,其实体中包含描述信息和指向(多个)重定向URL的链接——如上图第一个响应报文

下表列出已定义的重定向状态码:

上面302、303于307状态码之间存在一些交叉,区别在于HTTP/1.0和HTTP/1.1对其的处理方式:

HTTP/1.0发起一个POST请求,并在响应中收到302重定向状态码时,它会接受Location首部重定向的URL,并向那个URL发起一个GET请求

如果HTTP/1.0服务器收到来自HTTP/1.0客户端的POST请求之后,发出302状态码,服务器希望客户端能接受重定向URL并向重定向URL发一个GET请求

但是,HTTP/1.1规范使用303状态码来实现以上行为(服务器发送303状态码重定向客户端的POST请求,在其后面跟上一个GET请求)

为规避上述问题,HTTP/1.1规范:对于HTTP/1.1客户端,用307来取代302状态码进行重定向(保存302状态码,留待HTTP/1.0使用→→服务器遇到类似情况需要先检查客户端HTTP版本)

 

4、400~499——客户端错误状态码

有时候客户端会发送一些服务器无法处理的请求,比如格式错误的报文或者不存在的URL,服务器会返回给我状态码告诉我们它的反应

很多客户端错误都由浏览器处理,只有少量错误,比如404,会被用户看到;下表列出各种客户端错误状态码

 

5、500~599服务器错误状态码

有时客户端发起一个请求,但服务器由于本身缺陷或子元素出错时,会出现此类问题,服务器返回5XX代码来描述遇到的问题

下表列出一些已定义的服务器错误状态码

 

 

转载于:https://www.cnblogs.com/insane-Mr-Li/p/10142465.html

相关文章:

一行Python代码能实现什么丧心病狂的功能?

作者 | 天元浪子来源 | CSDN博客手头有 109 张头部 CT 的断层扫描图片&#xff0c;我打算用这些图片尝试头部的三维重建。基础工作之一&#xff0c;就是要把这些图片数据读出来&#xff0c;组织成一个三维的数据结构&#xff08;实际上是四维的&#xff0c;因为每个像素有 RGB…

Windows7 32位机上,OpenCV中配置GPU操作步骤

1、 查看本机配置&#xff0c;查看显卡类型是否支持NVIDIA GPU&#xff0c;本机显卡为NVIDIA GeForce 8400 GS&#xff1b; 2、 从http://www.nvidia.cn/Download/index.aspx?langcn下载最新驱动并安装&#xff1b; 3、 从https://developer.nvidia.com/cuda-toolkit根据…

【2018.12.15】【考试总结】【模拟+逆序对+树状数组+贪心+multiset】爆零之旅

这是我悲惨的接近爆零的一次考试&#xff0c;但是本蒟蒻不能放弃&#xff0c;还是要总结的QAQ 答题卡 【题目背景】 八月是个悲惨的月份。先不谈炎热的天气&#xff0c;对于新生来说&#xff0c;八月意味着军训&#xff1b; 而对于高二高三的同学来说&#xff0c;八月意味着开学…

RememberMe 功能的实现(base-auth使用说明)

2019独角兽企业重金招聘Python工程师标准>>> 日常记录&#xff0c;代码是根据SpringSecurity写的。 ###写个Entity类实现UserDetails <!-- lang: java --> package com.lqz.b2c.base.web.controller.member.support;import com.lqz.b2c.base.entity.Passport;…

AutoML前沿技术与实践经验分享 | 免费公开课

传统机器学习的解决范式可表示为&#xff1a;ML Solution ML expertise Computation Data新机器学习范式可表示为&#xff1a;New ML Solution 100x Computation 100x Data通过表示的变化&#xff0c;可以看出&#xff0c;传统范式的“ML expertise”被“100x”的“Comput…

Windows 7 64位机上搭建Android开发环境

1、从http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html下载Java JDK&#xff0c;根据机子本身配置&#xff0c;选择jdk-7u25-windows-x64.exe下载&#xff0c;将其安装到D:\ProgramFiles\Java\jdk1.7.0_25文件夹下&#xff0c;并将D:\Pro…

近4万Star,登月源码登顶GitHub,这位女程序员“拯救”了阿波罗

作者 | 伍杏玲转载自CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;1969 年 7 月 20 日&#xff0c;“阿波罗 11 号”飞船登月&#xff0c;宇航员尼尔阿姆斯特朗&#xff08;Neil Armstrong&#xff09;成功踏上月球表面&#xff0c;标志着人类第一次踏上月球&#xff0c…

Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤

1、 先按照http://blog.csdn.net/fengbingchun/article/details/10439281中操作搭建好基本的Android开发环境&#xff1b; 2、 打开Eclipse&#xff0c;-->Window-->AndroidVirtual Device Manager-->New-->AVD Name:Android_OpenGLES, Device:GalaxyNexus(4.65…

animate默认时长所带来的问题及解决

一、需求描述 做一个进度条长度逐渐减少的动画&#xff0c;当进度条长度小于等于0时&#xff0c;关闭动画&#xff0c;并弹出透明底板显示新提示。 二、问题描述 初始代码如下&#xff1a; //设置进度条初始长度 var progressLength 180; //设置一个定时器 var timer …

避坑指南:如何选择适当的预测评价指标?| 程序员评测

作者 | Nicolas Vandeput译者 | Tianyu责编 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导语】因为不存在一个适用于所有情况的评价指标&#xff0c;所以评估预测精度&#xff08;或误差&#xff09;就变成了一件不是那么容易的事情。只有通过…

利用JNI技术在Android中调用C++代码

JNI是Java Native Interface的简称&#xff0c;也就是Java本地接口&#xff0c;它提供了若干的API实现Java和其它语言的通信(主要是C&C)。 1、打开Eclipse&#xff0c;File-->New-->Project…-->AndroidApplication Project-->Application Name:TestJNI,Packag…

微软开源数据处理引擎 Trill,每天可分析万亿次事件

微软近日开源了数据处理引擎 Trill&#xff0c;它每天能够分析万亿次事件。项目地址&#xff1a;https://github.com/Microsoft/trill当下每毫秒处理大量数据正成为一种常见的业务需求&#xff0c;此次微软开源的 Trill&#xff0c;据说每秒能够处理高达数十亿事件&#xff0c;…

【杭电ACM】1097 A hard puzzle

【杭电ACM】1097 A hard puzzle http://acm.hdu.edu.cn/showproblem.php?pid1097 先用int手写了算法结果竟然wrong answer&#xff0c;估计是测试数据很大&#xff0c;直接上BigInteger 和modPow()&#xff0c;轻松解决。 1 //author:pz2 3 import java.math.BigInteger;4 im…

mvc 下的 signalR使用小结

2019独角兽企业重金招聘Python工程师标准>>> sirnal下有两种使用。 一种是 Persistent Connection &#xff0c;另外一种是Hubs 。详细请看 https://github.com/SignalR/SignalR/wiki &#xff1b; hubs支持浏览器与客户端互相调用方法。所以应用更广泛。 在前台…

利用JNI技术在Android中调用C++形式的OpenGL ES 2.0函数

1、 打开Eclipse&#xff0c;File-->New-->Project…-->Android-->AndroidApplication Project,Next-->Application Name:FillTriangle, PackageName:com.filltriangle.android,Minimum Required SDK:API 10Android2.3.3(Gingerbread),Next--&g…

Python三十年技术演变史

作者 | 宋天龙&#xff0c;大数据技术专家&#xff0c;触脉咨询合伙人兼副总裁&#xff0c;前Webtrekk中国区技术和咨询负责人&#xff08;Webtrekk&#xff0c;德国的在线数据分析服务提供商&#xff09;。擅长数据挖掘、建模、分析与运营&#xff0c;精通端到端数据价值场景设…

php 扩展包链接

https://pecl.php.net/package-stats.php?cid7转载于:https://www.cnblogs.com/gaoyuechen/p/10148754.html

面向中小企业的视频云服务 视频托管

2019独角兽企业重金招聘Python工程师标准>>> 面向中小企业的视频云服务解决方案 如果你是一个传统的企业网站&#xff0c;想要在网站首页加入一段视频&#xff0c;或者是一个垂直资讯网站想要开设视频频道&#xff0c;又或者想要进行一项活动的在线直播。这时候也许…

VS2010下编译OpenCV2.4.6静态库

1、 从 http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.3/ 下载最新的OpenCV2.4.6&#xff1b; 2、 将OpenCV-2.4.6.0.exe存放到D:\Soft\OpenCV2.4.6文件夹下&#xff0c;解压到当前文件夹下&#xff0c;生成一个opencv文件夹&#xff1b; 3、 下…

【性能优化之道】每秒上万并发下的Spring Cloud参数优化实战

一、写在前面 相信不少朋友都在自己公司使用Spring Cloud框架来构建微服务架构&#xff0c;毕竟现在这是非常火的一门技术。 如果只是用户量很少的传统IT系统&#xff0c;使用Spring Cloud可能还暴露不出什么问题。 如果是较多用户量&#xff0c;高峰每秒高达上万并发请求的互联…

共话数据智能新经济,首届市北·GMIS 2019全球数据智能峰会隆重召开

7月19日&#xff0c;上海市市北高新技术服务业园区&#xff08;以下简称“市北高新”&#xff09;成功举办首届「市北GMIS 2019全球数据智能峰会」&#xff08;以下简称“市北GMIS峰会”&#xff09;。为期两天的市北GMIS峰会以“拥抱数智经济&#xff0c;赋能产业生态”为主题…

最新剑桥《AI全景报告》出炉:中国发表机器学习学术研究超过美国

来源 | 转载自新智元&#xff08;ID:AI_era&#xff09;2019年即将过去一半&#xff0c;剑桥大学的两位研究人员近日推出了本年度的State AI 2019全景报告。本报告基本沿袭去年的大体框架&#xff0c;从产业、人才、政策、预测等方面对过去一年来AI领域的技术的新进步、产业格局…

《OpenMP编译原理及实现技术》摘录

内容摘自《OpenMP编译原理及实现技术》第2章 代码测试环境&#xff1a;Windows7 64bit, VS2010, 4核机。 可以说OpenMP制导指令将C语言扩展为一个并行语言&#xff0c;但OpenMP本身不是一种独立的并行语言&#xff0c;而是为多处理器上编写并行程序而设计的、指导共享内存、多…

C# 36进制转10进制

代码是Java转过来的&#xff0c;变量名都没有改……有空再整理一下好了。public long toDecimal(string input, long bs){try{long Bigtemp 0, temp 1;int len input.Length;for (int i len - 1; i > 0; i--){if (i ! len - 1)temp * bs;long num changeDec(input[i]);…

Oracle Cloud Native Framework推出云原生解决方案

摘要&#xff1a;Oracle Cloud Native Framework云原生平台提供托管云服务和本地软件&#xff0c;同时在现Oracle云基础架构上跨应用程序配置和分析大量服务。developer relations for Oracle Cloud Infrastructure副总裁Bob Quillin讨论了该框架的优势以及对2019年云原生市场的…

OpenMP知识点汇总

1. OpenMP(Open Multi-Processing)官网&#xff1a;http://openmp.org/wp/ 2. OpenMP最新版本4.0&#xff0c;2013年7月发布。Visual Studio 2010内置支持OpenMP2.0&#xff0c;选中工程属性->C/C->Language->Open MP Support:选中Yes(/openmp)即可&#xff0c;然后在…

chsop 兼容jquery(解决与transport.js冲突)

2019独角兽企业重金招聘Python工程师标准>>> $(function() { window.__Object_toJSONString Object.prototype.toJSONString; delete Object.prototype.toJSONString; }); 要用到jquery的页面放入此代码即可 转载于:https://my.oschina.net/netmouse/blog/1241…

进程详细剖析(二)

摘自《C多核高级编程》 5.6.3 进程状态 在进程执行期间&#xff0c;它的状态会发生改变。进程的状态时指进程的当前状况。在POSIX兼容的环境中&#xff0c;进程可以处于以下状态&#xff1a; 1&#xff09;运行&#xff08;running&#xff09; 2&#xff09;就绪(runnable, r…

AI算力需求6年增长30万倍,「超异构计算」才能满足下一个10年

今年 3 月&#xff0c;「强化学习教父」Richard Sutton 在《苦涩的教训》一文中指出&#xff0c;「70 年的人工智能研究史告诉我们&#xff0c;利用计算能力的一般方法最终是最有效的方法。要在短期内有所提升&#xff0c;研究人员要利用专门领域的人类知识。但如果想要长期的获…

一览六月最热的5篇AI技术论文

作者 | 神经小姐姐转载自HyperAI超神经&#xff08;ID: HyperAI&#xff09;导语&#xff1a;始建于 1991 年的 arXiv.org 至今已收录超过 100 万篇论文预印本&#xff0c;近年来&#xff0c;其每月提交量已经超过 1 万篇。这里成为一个巨大的学习宝库。本文罗列了 arXiv.org 上…