[关于HTTP协议,一篇就够了] 看这一篇就够了
关协议简介协议是r x rr rl(超传输协议)缩写,是用从万维(器传输超到地浏览器传送协议。
是属应用层面向对象协议由其简捷、快速方式适用分布式超媒体信息系统。
它990年提出几年使用与发展得到不断地完善和扩展。
目前使用是六版规化工作正进行而且建议已提出。
主要特、简单快速客户向器请只传送请方法和路径。
请方法常用有G、、。
每种方法规定了客户与器系类型不。
由协议简单使得器程序规模因而通信速很快。
、灵活允许传输任类型数据对象。
正传输类型由加以标记。
器处理完客户请并收到客户应答即断开连接。
采用这种方式可以节省传输。
缺少状态味着如续处理要前面信息则它必须重传这样可能导致每次连接传送数据量增。
另方面器不要先前信息它应答就较快。
5、支持B及模式。
RL是种特殊类型R包含了用某足够信息RL,全称是rRrLr, 叫统定位,是上用标识某处地。
以下面这RL例介绍下普通RL各部分组成从上面RL可以看出完整RL包括以下几部分 协议部分该RL协议部分“这代表页使用是协议。
"面“”分隔域名部分该RL域名部分“RL也可以使用地作域名使用3端口部分跟域名面是端口域名和端口使用“”作分隔。
端口不是RL必须部分如省略端口部分将采用默认端口虚拟目录部分从域名“”开始到“”止是虚拟目录部分。
虚拟目录也不是RL必须部分。
例虚拟目录是“”5件名部分从域名“”开始到“?”止是件名部分如没有“?”,则是从域名“”开始到“#”止是件部分如没有“?”和“#”那么从域名“”开始到结束都是件名部分。
例件名是“x”。
件名部分也不是RL必须部分如省略该部分则使用默认件名6锚部分从“#”开始到都是锚部分。
例锚部分是“”。
锚部分也不是RL必须部分7参数部分从“?”开始到“#”止部分参数部分又称部分、询部分。
例参数部分“br5&68&g”。
参数可以允许有多参数参数与参数用“&”作分隔。
R和RL区别R是r rr r统标识用唯标识。
b上可用每种如L档、图像、视频片段、程序等都是R定位 R般由三部组成 ①访问命名机制 ②存放主机名 ③身名称由路径表示着重强调。
RL是r rr lr统定位器它是种具体R即RL可以用标识而且还指明了如何l这。
RL是r上用描述信息串主要用各种客户程序和器程序上特别是著名。
采用RL可以用种统格式描述各种信息包括件、器地和目录等。
RL般由三部组成 ①协议(或称方式) ②存有该主机地(有也包括端口) ③主机具体地。
如目录和件名等Rr rr 统命名是通名标识比如。
R是以种抽象高层次概念定义统标识而RL和R则是具体标识方式。
RL和R都是种R。
笼统地说每 RL 都是 R但不定每 R 都是 RL。
这是因 R 还包括子类即统名称 (R)它命名但不指定如何定位。
上面 l、 和 b R 都是 R 示例。
vRR实例可以代表绝对也可以是相对只要它合R语法规则。
而RL类则不仅合语义还包含了定位该信息因它不能是相对。
v类库R类不包含任何访问方法它唯作用就是析。
相反是RL类可以打开到达流。
请消息Rq客户端发送请到器请消息包括以下格式请行(rq l)、请头部(r)、空行和请数据四部分组成。
请消息结构g请行以方法开头以空格分开面跟着请R和协议版。
G请例子使用rl抓取rqG 56598000bb06000338g 部分请行用说明请类型,要访问以及所使用版G说明请类型G,[56598000bb06000338g]要访问该行部分说明使用是版。
二部分请头部紧接着请行(即行)部分用说明器要使用附加信息从二行起请头部将指出请目地rg,器端和客户端脚都能访问它,它是浏览器类型检测逻辑重要基础该信息由你浏览器定义,并且每请动发送等等三部分空行请头部面空行是必须即使四部分请数据空也必须有空行。
这例子请数据空。
请例子使用rl抓取rq 部分请行行明了是请以及版。
二部分请头部二行至六行。
响应消息格式g例子部分状态行由协议版 状态码 状态消息 三部分组成。
行状态行(表明版版状态码00状态消息(k)二部分消息报头用说明客户端要使用些附加信息二行和三行消息报头 生成响应日期和;指定了类型L(xl),编码类型是8三部分空行消息报头面空行是必须四部分响应正器返回给客户端信息。
状态码状态代码有三位数组成数定义了响应类别共分五种类别xx指示信息表示请已接收继续处理xx成功表示请已被成功接收、理、接受3xx重定向要完成请必须进行更进步操作xx客户端错误请有语法错误或请无法实现5xx器端错误器能实现合法请常见状态码00 K 客户端请成功00 B Rq 客户端请有语法错误不能被器所理0 rz 请授权这状态代码必须和报头域起使用03 rb 器收到请但是拒绝提供0 请不存g输入了错误RL500 rl rvr rrr 器发生不可预期错误503 rvr vlbl 器当前不能处理客户端请段可能恢复正常根据标准请可以使用多种请方法。
定义了三种请方法 G, 和 方法。
新增了五种请方法, , L, R 和 方法。
G 请指定页面信息并返回实体主体。
类似g请只不返回响应没有具体容用获取报头 向指定提交数据进行处理请(例如提交表单或者上传件)。
数据被包含请体。
请可能会导致新建立和或已有修改。
L 请器删除指定页面。
允许客户端看器性能。
R 回显器收到请主要用测试或诊断。
工作原理协议定义b客户端如何从b器请b页面以及器如何把b页面传送给客户端。
客户端向器发送请报请报包含请方法、RL、协议版、请头部和请数据。
器以状态行作响应响应容包括协议版、成功或者错误代码、器信息、响应头部和响应数据。
以下是 请响应步骤、客户端连接到b器客户端通常是浏览器与b器端口(默认80)建立套接连接。
例如发送请通套接客户端向b器发送请报请报由请行、请头部、空行和请数据部分组成。
3、器接受请并返回响应b器析请定位请。
器将复写到套接由客户端取。
、释放连接连接若 模式l则器主动关闭连接客户端被动关闭连接释放连接;若 模式klv则该连接会保持段该可以继续接收请;5、客户端浏览器析L容客户端浏览器首先析状态行看表明请是否成功状态代码。
客户端浏览器取响应数据L根据L语法对其进行格式化并浏览器窗口显示。
例如浏览器地栏键入RL按下回车会历以下流程、浏览器向 器请析该 RL 域名所对应 地;、析出 地根据该 地和默认端口 80和器建立连接;3、浏览器发出取件(RL 域名面部分对应件)请该请报作 三次握手三报数据发送给器;、器对浏览器请作出响应并把对应 l 发送给浏览器;5、释放 连接;6、浏览器将该 l 并显示容;G和请区别G请G bk?x&rl 行是空行请 提交请数据会附RL(就是把数据放置协议头)以?分割RL和传输数据多参数用&连接;例 如lg?&rk&vr%%B%0 %5%5%B。
如数据是英母数原样发送如是空格换+如是其他则直接把串用B6加密得出如 %%B%0%5%5%B其%XXXX该以6进制表示。
上示例红色体标明就是实际传输数据因G提交数据会地栏显示出而提交地栏不会改变、传输数据首先声明协议没有对传输数据进行限制协议规也没有对RL长进行限制。
而实际开发存限制主要有G特定浏览器和器对RL长有限制例如 对RL长限制是083节(K+35)。
对其他浏览器如、rx等理论上没有长限制其限制取操作系 统支持。
由不是通RL传值理论上数据不受 限。
3、安全性安全性要比G安全性高。
比如通G提交数据用户名和密码将明出现RL上因()登录页面有可能被浏览器缓存;()其他人看浏览器历史纪录那么别人就可以拿到你账和密码了除外使用G提交数据还可能会造成r rq rgr攻击、协议都是上运行()g请参数是作kvl对序列(询串)附加到RL上 询串长受到b浏览器和b器限制(如多支持08)不适合传输型数据集它很不安全()请参数是标题不部分(名 b)传输这部分用传输表单信息因必须将设置lx设计用支持b窗体上用户段其参数也是作kvl对传输。
(3)是专用版遵循种特殊xl消息格式 设置 xxl 任何数据都可以xl化。
协议定义了很多与器交方法基有种分别是G,,,L RL地用描述络上而G, , , L就对应着对这改增删操作。
我们常见就是G和了。
G般用获取询信息而般用更新信息我们看看G和区别 G提交数据会放RL以?分割RL和传输数据参数以&相连如x?&356 方法是把提交数据放包B G提交数据有限制(因浏览器对RL长有限制)而方法提交数据没有限制3 G方式要使用RqQrrg取得变量值而方式通Rqr获取变量值。
G方式提交数据会带安全问题比如登录页面通G方式提交数据用户名和密码将出现RL上如页面可以被缓存或者其他人可以访问这台机器就可以从历史记录获得该用户账和密码。