Http请求报文(请求行,请求头、请求体)

Http请求报文:

http请求报文由3部分组成,请求行,请求头,请求体

  

一、请求行: 

请求方法、URL地址、协议版本

请求方法:POST、GET、DELETE、PUT、HEAD、OPTIONS、TRACE

 

二、请求头:

请求头包含于若干个属性,格式:“属性名:属性值

 

下面是部分常用的请求头属性讲解: 

 属性名     举例说明 
host 请求的web服务器域名地址    
accept 指定客户端接受数据类型的信息    
accept-language 接受语言  

en或en-us指英语,zh或zh--cn指中文 ;

zh-CN,zh;q=0.9表示客户端接收的语言为中文,权重系数为0.9

accept-encoding 浏览器发给服务器,声明浏览器支持的编码类型的

1.compress, gzip  支持compress 和gzip类型 ;
2.identity 默认类型;

3.* 支持所有类型 ;

      

Accept-Encoding: gzip;q=0.5, identity; q=1, *;q=0 ;

支持权重系数顺序支持: identity, gzip,其余类型不支持      

     

authorization  身份验证    
cookie 浏览器用这个属性向服务器发送Cookie 格式: 属性1=属性值1;属性2=属性值2;  
content-type Body编码方式

1.application/x-www-form-urlencoded:表单数据向服务器提交时所采用的编码类型;

2.application/json:消息的主体是序列化后的JSON字符串;

3.multipart/form-data:文件上传;

 
user-agent 标识客户端身份的名称

 

 

connection

 表示客户端与服务器的连接类型  默认:keep-alive  

①Client发起一个包含Connection:keep-alive的请求(HTTP 1.1使用keep-alive为默认值)

②Server收到请求后:

如果Server支持keep-alive, 回复一个包含Conection:keep-alive的响应,不关闭连接。

如果Server不支持keep-alive,回复一个包含Connection:close的响应,关闭连接。

③如果Client收到包含Connection:keep-alive的响应,则向同个连接发送下一个请求,直到一方主动关闭连接。

注意: Connection:keep-alive 在很多情况下能够重用连接,减少资源消耗,缩短响应时间。例如,当浏览器需要多个文件时(如一个HTML文件和多个Image文件),不需要每次都去请求建立连接

 

upgrade-insecure-requests
升级为HTTPS请求  
upgrade-insecure-requests:1

表示升级不安全的请求,会在加载HTTP资源时自动替换成HTTPS请求,让浏览器不再显示HTTPS页面中的HTTP请求警报。

HTTPS是以安全为目标的HTTP通道,所以在HTTPS承载的页面上不允许出现HTTP请求,一且出现就会提示或报错。

 注:q:表示权重系数,范围是0=<q<= 1。q值越大,请求越倾向于获得其“;”之前的类型表示的内容。若没有指定q值,则默认为1,按从左到右排序;若被赋值为0,则表示浏览器不接受此内容类型。

 

Accept:常见的媒体格式

application/json : JSON数据格式 

application/xhtml+xml :XHTML格式 

application/xml : XML数据格式

application/atom+xml :Atom XML聚合格式

application/pdf :pdf格式

application/msword : Word文档格式

application/octet-stream : 二进制流数据(如常见的文件下载)

application/x-www-form-urlencoded : < form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)  

text/html:html格式,浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理。 

text/xml:纯文本格式 

text/xml:XML格式

text/plain:将文件设置为纯文本的形式,浏览器在获取到这种文件时并不会对其进行处理

image/gif :gif图片格式

image/png:png图片格式

video/mpeg:视频

*/*:所有格式

 

三、请求体:

请求参数

 

====================================================================================

详细资料可以查看:

http 中文开发手册:http://www.php.cn/manual/view/35581.html

 

本文转载于网络 如有侵权请联系删除

相关文章

  • OleDbCommand执行查询无效的解决[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君。今日连接数据库,写下以下代码 Dim conn As New OleDbConnection Dim cmd As New OleDbCommand() conn.ConnectionString = ConfigurationManager.ConnectionStrings( “ AccessConn “ ).ConnectionString cmd.Connection = conn    conn.Open() cmd.CommandText = SQLstr Dim previousConnectionState As ConnectionState = conn.State Try If conn.State = ConnectionState.Closed Then conn.Open() End If cmd.ExecuteNonQuery() conn.Close() showph(PlaceHolder3) Catch ex As Exception l_e.Text = “ 出现错误 “ &

  • Linux上为你的任务创建一个自定义的系统托盘指示器

    系统托盘图标如今仍是一个很神奇的功能。只需要右击图标,然后选择想要的动作,你就可以大幅简化你的生活并且减少日常行为中的大量无用的点击。一说到有用的系统托盘图标,我们很容易就想到Skype、Dropbox和VLC:然而系统托盘图标实际上要更有用得多;你可以根据自己的需求创建自己的系统托盘图标。本指导将会教你通过简单的几个步骤来实现这一目的。前置条件我们将要用Python来实现一个自定义的系统托盘指示器。Python可能已经默安装在所有主流的Linux发行版中了,因此你只需要确定一下它已经被安装好了(此处使用版本为2.7)。另外,我们还需要安装好gir1.2-appindicator3包。该库能够让我们很容易就能创建系统图标指示器。在Ubuntu/Mint/Debian上安装:sudoapt-getinstallgir1.2-appindicator3在Fedora上安装:sudodnfinstalllibappindicator-gtk3对于其他发行版,只需要搜索包含“appindicator”的包就行了。在GNOMEShell3.26开始,系统托盘图标被删除了。你需要安装这个扩展(或者

  • 数据科学家极力推荐核心计算工具-Numpy的前世今生(下)

    上一次咱们聊了关于Numpy的上半部分,这次是关于Numpy的下半部分 上半部分的入口数据科学家极力推荐核心计算工具-Numpy的前世今生(上) ----------------------------------------------------------------------------------------首先,重磅!今天给大家拿到Python的核心资料!实实在在在工业界会要用到!公众号后台回复“Python数据科学”全部获取得到! 先看下目录哈!! 1.通用函数2.利用数组进行数据处理向量化将条件逻辑表达为数组运算where函数Nottobeexecuted数学与统计方法用于布尔型数组的方法排序唯一化以及其他的集合逻辑3.线性代数4.随机数生成范例:随机漫步一次模拟多个随机漫步5.利用NumPy进行历史股价分析读入文件统计分析股票收益率日期分析周汇总真实波动幅度均值简单移动平均线指数移动平均线布林带线性模型趋势线1.通用函数#-*-coding:utf-8-*- arr=np.arange(10) np.sqrt(arr) np.exp(arr) x=randn(8

  • SQL语句查询出的数据进行字符串拼接,oracle批量删除数据库用户实例演示

    通过dba_users表可以查询出所有的数据库用户,我下面筛选了所有HR开头的数据库用户,要把他们都删掉。selectusernamefromdba_userswhereusernamelike'HR%'orderbycreatedasc;复制||符号可以连接字符串还有查出来的数据,删除用户的数据库语句是dropuserxxxcascade,通过字符串拼接可以直接生成我要批量删除的数据库用户语句。select'dropuser'||username||'cascade;' fromdba_userswhereusernamelike'HR%'orderbycreatedasc;复制效果图1: 效果图2: 我直接把结果copy出来执行即可。

  • python函数——创建文件夹

    python函数系列目录:python函数——目录常用封装借口接口1importos defcreate_dirs(dirs): try: fordir_indirs: ifnotos.path.exists(dir_): os.makedirs(dir_) return0 exceptExceptionaserr: print("Creatingdirectorieserror:{0}".format(err)) exit(-1)复制接口2defmkdir_if_not_exist(dir_name,is_delete=False): """ 创建文件夹 :paramdir_name:文件夹 :paramis_delete:是否删除 :return:是否成功 """ try: ifis_delete: ifos.path.exists(dir_name): shutil.rmtree(dir_name) printu'[INFO]文件夹"%s"存在,删除文件夹.'

  • 手工将项目升级至 Angular 9 记录

    手工将项目升级至Angular9记录Angular最近发布了9.0版本,需要先将一个模板项目升级至新版本。虽然它提供了ngupdate命令来升级,但是这个命令会自动调整package.json文件依赖项的顺序,导致向其它项目合并时产生不必要的冲突。为了不打乱现有的依赖项的顺序,容易向其它派生项目进行合并,同时也能明确知道究竟那些文件需要修改,因此采用手工升级的办法。项目结构采用angular-cli创建的的多项目架构,web是一个应用,app-shared是类库。-angular.json -package.json -tsconfig.json -tslint.json -projects/ --+app-shared/ --+web/复制package.json依赖项(dependencies)升级,将Angular的npm包@angular/*包版本升级为~9.0.0,以及其相关npm包的升级:{ "dependencies":{ -"@angular/animations":"~8.2.14", +"@ang

  • 决策树4:构建算法之ID3、C4.5

    0x01ID3算法介绍1.1简介ID3算法是一种分类预测算法,算法以信息论中的“信息增益”为基础。核心是通过计算每个特征的信息增益,每次划分选取信息增益最高的属性为划分标准,递归地构建决策树。ID3相当于用极大似然法进行概率模型的选择。具体方法是:从根结点(rootnode)开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征。由该特征的不同取值建立子节点,再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止;最后得到一个决策树。从ID3的构建树过程而言,它可以看成使用贪心算法得到近似最优的一颗决策树,它无法保证是最优的。1.2构建流程以递归的方式构建一棵决策树,其算法流程如下:算法:createTree(dataSet,featList,bestFeatLists)。由给定的训练数据产生一棵判定树。输入:dataSet:训练数据集featList:分类属性标签bestFeatLists:存储选择的最优特征标签输出:myTree:一棵判定树。方法:createTree(dataSet,featList,bestFeatL

  • 我们误会cufflinks,虽然定量不准但却是很好的可视化工具

    前前言早期做转录组分析的朋友们应该都接触过Cufflinks,一款有争议的拼装和定量软件。对其拼装和定量准确性做了评估,拼装确实不如StringTie,但定量的稳定性结果还是可以的(起码在测试数据中)。不过现在作者也都放弃了,自然也很少会有人继续使用了。巧合的是,Python中有个功能强大的可视化包,也叫cufflinks,撞名了,便有了这篇文章。前言学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等。这些可视化库都有自己的特点,在实际应用中也广为大家使用。plotly、Boken等都是交互式的可视化工具,结合Jupyternotebook可以非常灵活方便地展现分析后的结果。虽然做出的效果非常的炫酷,比如plotly,但是每一次都需要写很长的代码,一是麻烦,二是不便于维护。我觉得在数据的分析阶段,更多的时间应该放在分析上,维度选择、拆解合并,业务理解和判断。如果既可以减少代码量,又可以做出炫酷可视化效果,那将大大提高效率。当然如果有特别的需求除外,此方法仅针对想要快速可视

  • 服务器是什么?

    哈喽!各位小伙伴大家好呀!有小伙伴私信问,服务器是什么,本期就来简要的说下服务器。服务器,顾名思义,就是提供服务的咯。 那服务器为谁提供服务呢?当然是为计算机提供服务。 简单的说就是为电脑提供服务的电脑。从硬件层面来说,服务器和普通电脑一样,也是由CPU、内存、主板、硬盘、电源等组成的。只是由于其特殊性,外观的样式大多都与普通电脑不同。 一般都长这样 这是为了更好的放进机柜,可以与机柜中的其他设备共存, 也尽量减少占用其他设备的空间,一般小企业的机柜里, 安装着防火墙设备,核心交换机设备,无线AC,以及服务器。 如果服务器跟普通塔式机箱一样,会更占用空间。 而服务器就没有塔式吗?其实也是有的,针对不同场景, 每种服务器的使用方式和场景不同,也是有多元化的选择, 只是大部分都是以刀片式为主。服务器只是外观与普通计算机不同吗?我们来看下内部构造。 在服务器的内部,一般都有两个CPU和16个内存插槽,一堆硬盘仓,而且散热风扇也很多,唯独没有显卡插槽。那么为什么服务器需要这么多内存硬盘,却不需要显卡呢?这里就要讲到服务器的软件层面的应用了。我们都知道电脑的硬件是载体,我们真正用的都是软件, 本

  • 公开课 | 我们到底需要什么样的智能助理(附视频+PPT)

    本文基于大数据文摘免费公开课分享之-智能助理探讨。点击文末阅读原文查看当天视频回放。公开课总长近1小时,请在wifi环境下观看。暂时无法观看的读者请直接查看ppt和文字摘要。人工智能已离我们的生活越来越近,各样的智能助理已慢慢融入我们的生活,包括微软小娜,亚马逊Echo,FacebookM,苹果Siri等。那需要什么样的智能助理,一直是个值探讨的问题。研究者虽然不从事智能助理研发工作,但也是从事机器学习金融领域应用工作。本次分享将结合经济、机器学习领域多位大神观点,包括诺贝尔经济学奖哈耶克,图灵奖、诺贝尔经济学奖赫伯特·西蒙,人工智能先驱图灵奖马文·明斯基等,以及最新《未来简史》作者瓦尔·赫拉利相关观点。抛砖引玉,欢迎参与讨论。一需要什么样的智能助理是《棋魂》中的佐为还是蜡笔小新?前些日子,中国诗词大会也掀起了不小热评,原来中文诗词那么优美。对于闲聊机器人来说,如果告诉其你失恋了,能回个“蓝瘦,香菇”。那这聊天机器人挺牛。一定是经常更新训练数据,与时俱进。情感是难以描述的,“我们的精神状态是如此复杂,只能以类比的方式来描述”[1],中国历来的文人墨客最是擅长比兴手法,我们不排除“蓝瘦,

  • 左手用R右手Python系列——多进程/线程数据抓取与网页请求

    这一篇涉及到如何在网页请求环节使用多进程任务处理功能,因为网页请求涉及到两个重要问题:一是多进程的并发操作会面临更大的反爬风险,所以面临更严峻的反爬风险,二是抓取网页数据需要获取返回值,而且这些返回值需要汇集成一个关系表(数据框)(区别于上一篇中的二进制文件下载,文件下载仅仅执行语句块命令即可,无需收集返回值)。R语言使用RCurl+XML,Python使用urllib+lxml。library("RCurl") library("XML") library("magrittr")复制方案1——自建显式循环:Getjobs<-function(){ fullinfo<-data.frame() headers<-c("Referer"="https://www.hellobi.com/jobs/search", "User-Agent"="Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(

  • SQLite vs MySQL vs PostgreSQL:关系型数据库比较

    自1970年埃德加·科德提出关系模型之后,关系型数据库便开始出现,经过了40多年的演化,如今的关系型数据库种类繁多,功能强大,使用广泛。面对如此之多的关系型数据库,我们应该如何权衡找出适合自己应用场景的数据库系统呢?O.S.Tezer最近在DigitalOcean上发表了一篇博文,对比了SQLite、MySQL和PostgreSQL这三个常用的、流行的关系型数据库管理系统(RDBMS),希望能对你有所帮助。O.S.Tezer分别从数据库支持的数据类型、优势、劣势、何时应该使用以及何时不应该使用该数据库这5个方面对SQLite、MySQL和PostgreSQL做了比较。SQLiteSQLite是一款轻型数据库,它遵守ACID,能够嵌入到使用它的应用程序中。作为一个自包含的、基于文件的数据库,SQLite提供了非常出色的工具集能够处理所有类型的数据,与托管在服务器上基于进程的关系型数据库相比它的约束更少,也更易用。当应用程序使用SQLite时,SQLite并非作为一个独立进程通过某种通信协议(例如socket)与应用程序通信,而是作为应用程序的一部分,应用程序通过调用SQLite的接口直接

  • ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)

    ASP.NETMVC通过Model验证帮助我们很容易的实现对数据的验证,在默认的情况下,基于ValidationAttribute的声明是验证被使用,我们只需要将相应的ValidationAttribute应用到Model的类型或者属性上即可。对于自定义验证,我们也只需要定义相应的Validation就可以了,不过服务端验证比较简单,而客户端验证就要稍微复杂一些,本文提供一个简单的实例说明在ASP.NETMVC中实现自定义验证的基本步骤。[源代码从这里下载]一、AgeRangeAttribute用于验证出生日期字段以确保年龄在制定的范围之内的AgeRangeAttribute定义如下,简单起见,我们直接让它直接继承自RangeAttribute。服务端验证逻辑定义在重写的IsValid方法中,并且重写了FormatErrorMessage方法以便生成针对年龄的验证消息。AgeRangeAttribute实现了IClientValidatable接口,并在实现的GetClientValidationRules方法中生成客户端验证规则。在生成的类型为“agerange”的ModelClie

  • pycharm配置pyqt5_python pyqt5教程

    大家好,又见面了,我是你们的朋友全栈君。pycharm配置PyQt5说明打开配置的位置配置QtDesigner配置PyUIC配置PyRCC说明Program目录:此处直接用的虚拟环境下的文件,也可用安装目录下的文件打开配置的位置File-SettingsTools-ExternalTools-点击+ 配置QtDesignerProgram:D:\ProgramFiles\Python\virtualenvs\py37_x64\Lib\site-packages\pyqt5_tools\designer.exe Arguments:$FileName$ Workingdirectory:$FileDir$复制配置PyUICProgram:D:\ProgramFiles\Python\virtualenvs\py37_x64\Scripts\pyuic5.exe Arguments:$FileName$-o$FileNameWithoutExtension$.py Workingdirectory:$FileDir$复制配置PyRCCProgram:D:\ProgramFiles\Pyth

  • 贪心

    455.分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果s[j]>=g[i],我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 把孩子的胃口排序,先看胃口最大的孩子可不可以得到满足 把饼干排序,如果孩子的最大所需小于等于最大饼干,直接把最大饼干分给胃口最大的孩子。 classSolution{ publicintfindContentChildren(int[]g,int[]s){ if(s.length==0){ return0;//饼干都没有满足谁? } Arrays.sort(g);//给孩子的胃口从小到大排序 Arrays.sort(s);//给饼干按从小到大的顺序排序 intcount=0;//满足孩子的个数 for(inti=g.length-1;i>=0;i--){ //遍历孩子的胃口 for(intj=s.l

  • 对volatile的理解

    定义:volatile是一种轻量级的同步机制,其属性有3个: 1.保证内存数据的可见性   正常每个线程操作数据,都是先将数据从主内存加载到自己的工作内存,在工作内存中进行读取和赋值;而volatile的作用是将数据从主内存中读出,修改后再强刷会主内存,保证其他线程可以看到修改后的数据 2.不保证原子性   每个线程修改数据后强刷回主内存时,会造成多线程之间数据的写覆盖;可以使用原子操作类来解决(AtomicInteger等) 3.禁止指令重排   jvm为了提高性能,编译器和处理器都会对指令重排序;多线程环境下,线程交替运行,重排序的优化可能造成数据的不可控(重排序的事例可以看单例模型中使用volatile的原因)

  • parallels desktop for mac安装虚拟机 之parallelsdesktop密钥 以及 parallels desktop安装win10的办公推荐可以提高办公效率

      大家好我是一个老程序员了.用惯了mac,平时工作都是在 mac安装虚拟机,之后就是mac安装win10.因为很多办公软件mac都不好用,主要是跟同事沟通不方便,当然mac的软件还是很好用的.希望5年后可以普及吧.我讲一下我的工作方式:   我是在mac安装虚拟机,之后就是mac安装win10,在mac上安装的虚拟机是parallelsdesktopformac,这个虚拟机特别好用,比vm好用10倍,这也是同事给推荐的. 因为之前使用windows接触的都是vm.所以用mac后习惯用了VM.接触parallelsdesktop之后就很喜欢.平时在 parallelsdesktop安装win10系统.办公软件非常方便.几乎所有的软件都可以安装.  问题:我平时用的是parallelsdesktop13.忽然有一天不能登录了.我的天啊.我文档都在虚拟机里存着.用了parallelsdesktop132年了.没出过问题.之前是在网上搜索的parallelsdesktop密钥.我的系统半年内也没升级,用的是10.12.所以我就怀疑是para

  • typora This beta version of Typora is expired, please download and install a newer version. 解决方案

    参考网友https://blog.csdn.net/yyywxk/article/details/125133205 修改Typora相应注册表的权限 打开注册表:按Windows+R打开运行窗口,输入regedit。 进入路径计算机\HKEY_CURRENT_USER\SOFTWARE\Typora。 在右键菜单选择权限,把各个用户的权限全部设置为拒绝。 本人水平有限,还在不断学习中 难免有很多错误或者遗漏,望见谅

  • Tensorflow Cpp API调用训练好的模型

    之前的笔记有一篇完成了对tensorflow的编译,然后简单写了个测试程度,所以,应该是可以用了的,然后上篇简单写了个基于Keras的手写数字识别的的模型需要你连了一下,那么现在就试试用tensorflow的C++API调用训练好的模型测试下。这里推荐一个GitHub上找到的项目,用的C++调用tensorflowAPI的。 首先,前面把模型保存为了.h5文件,但是,很遗憾,我查到的资料都是用C++加载的.pb文件,所以我还是得把模型保存为.pb文件或者将.h5文件转存为.pb文件,然后上帝说有光就有了光,我说要有个保存模型为.pb文件的,上帝就给了一个代码: from keras.models import load_model import tensorflow as tf from keras import backend as K from tensorflow.python.framework import graph_io def

  • docker学习笔记-02:docker常用命令

    一、帮助命令: 1、查看版本:dockerversion 2、查看信息:dockerinfo 3、查看帮助信息:docker--help   二、镜像命令: (一)、查看已有镜像:  1、命令:dockerimages  2、option说明: (1)-a  列出本地所有的镜像(含中间映像层) (2)-q  只显示镜像ID (3)--digests  显示镜像的摘要信息 (4)--no-trunc  显示完整的镜像信息 (二)、查看dockerhub上的镜像:  1、命令:dockersearchrasa   2、option说明: (1)dockersearch-s10rasa  点赞数超过10的rasa镜像 (2)dockersearch--no-truncrasa  显示完整的rasa镜像描述 (三)、下载docker镜像:  命令:dockerpullrasa等价于dockerpullrasa:lastest  下载最新版 (四)、删除docker镜像:   1、命令:dockerrmir

  • 类a对象作为其他类b的成员

    创建b对象是  会先创建a对象 再创建b对象 析构相反 先释放 b  再释放a

相关推荐

推荐阅读