http协议包含哪些组成部分.docx
- 文档编号:22806730
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:12
- 大小:22.97KB
http协议包含哪些组成部分.docx
《http协议包含哪些组成部分.docx》由会员分享,可在线阅读,更多相关《http协议包含哪些组成部分.docx(12页珍藏版)》请在冰豆网上搜索。
http协议包含哪些组成部分
竭诚为您提供优质文档/双击可除
http协议包含哪些组成部分
篇一:
http协议整理
简介:
http协议
http协议是用于从www服务器传输超文本到本地浏览器的传送协议。
http协议由请求和响应构成,是一个标准的客户端服务器模型。
tcp协议之上的应用层协议。
默认http的端口号为80。
http协议都是客户端发起请求,服务器回送响应。
见下图
http是一个基于请求与响应模式的、无状态的、应用层的协议,同一个客户户端的这次请求和上次请求是没有对应关系。
介绍uRl:
httpuRl的格式如下:
要通过http协议来定位网络资源;host表示合法的internet主机域名或者ip地址;port指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的uRi;如果uRl中没有给出abs_path,那么当它作为请求uRi时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。
http协议请求
请求由三部分组成,分别是:
请求行、消息报头、请求正文
请求行以一个方法符号开头,以空格分开,后面跟着请求的uRi和协议的版本,格式如下:
methodRequest-uRihttp-Version
其中method表示请求方法;Request-uRi是一个统一资源标识符;http-Version表示请求的http协议版本
请求方法:
get请求获取Request-uRi所标识的资源
post在Request-uRi所标识的资源后附加新的数据
head请求获取由Request-uRi所标识的资源的响应消息报头
put请求服务器存储一个资源,并用Request-uRi作为其标识
delete请求服务器删除Request-uRi所标识的资源
tRace请求服务器回送收到的请求信息,主要用于测试或诊断
connect保留将来使用
options请求查询服务器的性能,或者查询与资源相关的选项和需求
在接收和解释请求消息后,服务器返回一个http响应消息。
http响应也是由三个部分组成,分别是:
状态行、消息报头、响应正文状态行格式如下:
http-Version
--status-code---Reason-phrase
其中,http-Version表示服务器http协议的版本;status-code表示服务器发回的响应状态代码;Reason-phrase表示状态代码的短语。
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:
指示信息--表示请求已接收,继续处理
2xx:
成功--表示请求已被成功接收、理解、接受
3xx:
重定向--要完成请求必须进行更进一步的操作
4xx:
客户端错误--请求有语法错误或请求无法实现
5xx:
服务器端错误--服务器未能实现合法的请求
常见状态代码、状态短语描述、说明:
200ok//客户端请求成功
400badRequest//客户端请求有语法错误,不能被服务器所理解
401unauthorized//请求XX,这个状态代码必须和www-authenticate报头域一起使用
403Forbidden//服务器收到请求,但是拒绝提供服务
404notFound//请求资源不存在
500internalservererror//服务器发生不可预期的错误
503serverunavailable//服务器当前不能处理客户端的请求。
http消息报头包括普通报头、请求报头、响应报头、实体报头。
每一个报头域都是由名字+“:
”+空格+值组成,消息报头域的名字是大小写无关的。
1、普通报头
在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息。
cache-control用于指定缓存指令,缓存指令是单向的,且是独立的。
date普通报头域表示消息产生的日期和时间
connection普通报头域允许发送指定连接的选项。
2、请求报头
请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。
常用的请求报头
accept
accept请求报头域用于指定客户端接受哪些类型的信息。
authorization
authorization请求报头域主要用于证明客户端有权查看某个资源。
当浏览器访问一个页面时,如果收到服务器的响应代码为401(未授权),可以发送一个包含authorization请求报头域的请求,要求服务器对其进行验证。
host(发送请求时,该报头域是必需的)
host请求报头域主要用于指定被请求资源的internet主机和端口号,它通常从httpuRl中提取出来的,例如:
我们在浏览器中输入:
http:
///index.html
浏览器发送的请求消息中,就会包含host请求报头域,如下:
host:
此处使用缺省端口号80,若指定了端口号,则变成:
host:
:
指定端口号
user-agent
我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了你的操作系统的名称和版本,你所使用的浏览器的名称和版本,这往往让很多人感到很神奇,实际上,服务器应用程序就是从user-agent这个请求报头域中获取到这些信息。
user-agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。
不过,这个报头域不是必需的,如果我们自己编写一个浏览器,不使用user-agent请求报头域,那么服务器端就无法得知我们的信息。
3、响应报头
响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-uRi所标识的资源进行下一步访问的信息。
常用的响应报头
location
location响应报头域用于重定向接受者到一个新的位置。
location响应报头域常用在更换域名的时候。
server
server响应报头域包含了服务器用来处理请求的软件信息。
与user-agent请求报头域是相对应的。
下面是
server响应报头域的一个例子:
server:
apache-coyote/1.1
www-authenticate
www-authenticate响应报头域必须被包含在401(未授权的)响应消息中,客户端收到401响应消息时候,并发送authorization报头域请求服务器对其进行验证时,服务端响应报头就包含该报头域。
例如:
www-authenticate:
basicrealm="basicauthtest!
"//可以看出服务器对请求资源采用的是基本验证机制。
篇二:
http协议简单介绍
http协议简单介绍
php主要是用来做web编程,跟http协议密切相关,当然得熟悉http协议
http协议的例子
可以看我抓取的而XX的包
请求报文,
包括请求头,请求实体
get/http/1.1
host:
:
443
accept-encoding:
gzip,deflate,sdch,br
accept-language:
zh-cn,zh;q=0.8,en;q=0.6,zh-tw;q=0.4
user-agent:
mozilla/5.0(macintosh;intelmacosx10_10_3)applewebkit/537.36(khtml,likegecko)chrome/51.0.2704.103safari/537.36
响应报文
响应头,响应实体
http/1.1200ok
bdpagetype:
2
bdqid:
0xe42dcf0000045e003
bduseRid:
1571488541
cache-control:
private
connection:
keep-alive
content-encoding:
gzip
content-type:
text/html;charset=utf-8
date:
wed,26oct20xx03:
30:
15gmt
expires:
wed,26oct20xx03:
30:
15gmt
server:
bfe/1.0.8.18
set-cookie:
h_ps_pssid=1469_20792_21115_18559_17001_20882_21406_21377_21192;path=/;domain=
set-cookie:
__bsi=12031928091008280768_00_4_R_n_118_0303_c02F_n_i_i_0;expires=wed,26-oct-1603:
30:
20gmt;domain=;path=/
set-cookie:
bd_home=1;path=/
set-cookie:
bdsVRtm=114;path=/
strict-transport-security:
max-age=604800
transfer-encoding:
chunked
x-ua-compatible:
ie=edge,chrome=1
http协议的定义
http协议是一个请求响应的协议。
http协议的架构
http是一个客户端和服务器端请求和应答的标准(tcp)。
客户端是终端用户,服务器端是网站。
通过使用web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的http请求。
http只假定(其下层协议提供)可靠的传输,任何
能够提供这种保证的协议都可以被其使用。
http协议的结构
1
http协议采用了请求/响应模型。
客户端向服务器发送一个请求,请求头包含请求的方法、uRl、协议版本、以及包含请求修饰符、客户信息和内容的类似于mime的消息结构。
服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
常用的请求头方法
1get请求指定的页面信息,并返回实体主体。
2head类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
3post向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。
数据被包含在请求体中。
post请求可能会导致新的资源的建立和/或已有资源的修改。
4put从客户端向服务器传送的数据取代指定的文档的内容。
5delete请求服务器删除指定的页面。
6connecthttp/1.1协议中预留给能够将连接改为管道方式的代理服务器。
7options允许客户端查看服务器的性能。
8tRace回显服务器收到的请求,主要用于测试或诊断。
9patch实体中包含一个表,表中说明与该uRi所表示的原内容的区别。
10moVe请求服务器将指定的页面移至另一个网络地址。
11copy请求服务器将指定的页面拷贝至另一个网络地址。
12link请求服务器建立链接关系。
13unlink断开链接关系。
14wRapped允许客户端发送经过封装的请求。
15extension-mothed在不改动协议的前提下,可增加另外的方法。
常用的请求头域
accept指定客户端能够接收的内容类型accept:
text/plain,text/html
accept-charset浏览器可以接受的字符编码集。
accept-charset:
iso-8859-5
accept-encoding指定浏览器可以支持的web服务器返回内容压缩编码类型。
accept-encoding:
compress,gzip
accept-language浏览器可接受的语言accept-language:
en,zh
accept-Ranges可以请求网页实体的一个或者多个子范围字段accept-Ranges:
bytes
authorizationhttp授权的授权证书authorization:
basicqwxhzgRpbjpvcgVuihnlc2Ftzq==
cache-control指定请求和响应遵循的缓存机制cache-control:
no-cache
connection表示是否需要持久连接。
(http1.1默认进行持久连接)connection:
close
cookiehttp请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
cookie:
$Version=1;skin=new;
content-length请求的内容长度content-length:
348
content-type请求的与实体对应的
application/x-www-form-urlencoded
mime信息content-type:
date请求发送的日期和时间date:
tue,15nov20xx08:
12:
31gmt
expect请求的特定的服务器行为expect:
100-continue
From发出请求的用户的emailFrom:
user@
host指定请求的服务器的域名和端口号host:
if-match只有请求内容与实体相匹配才有效
“737060cd8c284d8af7ad3082f209582d”
if-match:
if-modified-since如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码if-modified-since:
sat,29oct20xx19:
43:
31gmt
if-none-match如果内容未改变返回304代码,参数为服务器先前发送的etag,与服务器回应的etag比较判断是否改变if-none-match:
“737060cd8c284d8af7ad3082f209582d”
if-Range如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。
参数也为etag
if-Range:
“737060cd8c284d8af7ad3082f209582d”
if-unmodified-since只在实体在指定时间之后未被修改才请求成功
if-unmodified-since:
sat,29oct20xx19:
43:
31gmt
max-Forwards限制信息通过代理和网关传送的时间max-Forwards:
10
pragma用来包含实现特定的指令pragma:
no-cache
proxy-authorization连接到代理的授权证书proxy-authorization:
basicqwxhzgRpbjpvcgVuihnlc2Ftzq==
Range只请求实体的一部分,指定范围Range:
bytes=500-999
Referer先前网页的地址,当前请求网页紧随其后,即来路Referer:
/archives/71.html
te客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息te:
trailers,deflate;q=0.5
upgrade向服务器指定某种传输协议以便服务器进行转换(如果支持)upgrade:
http/2.0,shttp/1.3,iRc/6.9,Rta/x11
user-agentuser-agent的内容包含发出请求的用户信息user-agent:
mozilla/5.0(linux;x11)
Via通知中间网关或代理服务器地址,通信协议Via:
1.0fred,(apache/1.1)warning关于消息实体的警告信息warn:
199miscellaneouswarning
常用的响应头域
accept-Ranges表明服务器是否支持指定范围请求及哪种类型的分段请求accept-Ranges:
bytes
age从原始服务器到代理缓存形成的估算时间(以秒计,非负)age:
12
allow对某网络资源的有效的请求行为,不允许则返回405allow:
get,head
cache-control告诉所有的缓存机制是否可以缓存及哪种类型cache-control:
no-cache
content-encodingweb服务器支持的返回内容压缩编码类型。
content-encoding:
gzip
content-language响应体的语言content-language:
en,zh
content-length响应体的长度content-length:
348
content-location请求资源可替代的备用的另一地址content-location:
/index.htm
content-md5返回资源的md5校验值content-md5:
q2hly2sgsw50zwdyaxR5iq==
content-Range在整个返回体中本部分的字节位置content-Range:
bytes21010-47021/47022
content-type返回内容的mime类型content-type:
text/html;charset=utf-8
date原始服务器消息发出的时间date:
tue,15nov20xx08:
12:
31gmt
etag请求变量的实体标签的当前值etag:
“737060cd8c284d8af7ad3082f209582d”
expires响应过期的日期和时间expires:
thu,01dec20xx16:
00:
00gmt
last-modified请求资源的最后修改时间last-modified:
tue,15nov20xx12:
45:
26gmt
location用来重定向接收方到非请求uRl的位置来完成请求或标识新的资源location:
/archives/94.html
pragma包括实现特定的指令,它可应用到响应链上的任何接收方pragma:
no-cache
proxy-authenticate它指出认证方案和可应用到代理的该uRl上的参数proxy-authenticate:
basic
refresh应用于重定向或一个新的资源被创造,在5秒之后重定向(由网景提出,被大部分浏览器支持)
Refresh:
5;url=(apache/1.1)
warning警告实体可能存在的问题warning:
199miscellaneouswarning
www-authenticate表明客户端请求实体应该使用的授权方案www-authenticate:
basic
http的状态信息
1xx:
信息
100continue
服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。
101switchingprotocols
服务器转换协议:
服务器将遵从客户的请求转换到另外一种协议。
2xx:
成功
200ok
请求成功(其后是对get和post请求的应答文档。
)
201created
请求被创建完成,同时新的资源被创建。
202accepted
供处理的请求已被接受,但是处理未完成。
篇三:
http协议简介及其工作原理
http协议简介及其工作原理
1.http的概述
超文本传输协议(http)是万维网应用层的协议,是通过两个程序实现:
一个是
客户端程序(一般称为浏览器),另一个是服务器(常称web服务器)。
这两个通常运行在不同的主机上通过交换http报文来完成网页请求和响应。
并且http定义了报文的结构和客户/服务器之间交换报文的规则。
2.http的工作流程
浏览器可以向web服务器发送请求并显示收到的网页,当用户在浏览器地址栏中输入一个uRl或点击一个超连接时,浏览器就向服务器发出了http请求,该请求被送往由uRl指定的web服务器,web服务器接收到请求后,进行相关文档的检索并以http规定的格式送回所要求的文件或其他相关信息,再由用(http协议包含哪些组成部分)户计算机上的浏览器负责解释和显示。
在http协议中,由于web服务器在发送用户要求的文档过程中,并不储存任何有关客户端的状态信息。
如果某个客户端在几秒钟内两次要求同一文档,服务器绝对不会认为不合理,因为它根本不记得用户端曾经来访过,因此http不维持客户端状态,故它又被称为无状态协议。
3.http运作过程中的连接
3.1连接过程说明
假设某个网页有10个jpFg图像,总共11个对象存在同一个服务器中,该网页的基本文档形式uRl为:
当采用http/1.0时,web服务过程:
⑴.http的客户端启用了对服务器的tcp连接,该服务器的80
号端口(http的默认端口)用来监听来自网络的网络服务请求。
⑵.http的客户端通过第一步建立的链接套接字发送“请求报文”。
请求报文中包含了文档的路径名(/somedepartment/home.index)。
⑶.http服务器通过第一步建立连接套接字收到了该请求报文,从磁盘或内存中查找
/somedepartment/home.index,将文档封存在http的“相应报文”中,并通过先前建立的套接字将该报文送到客户端。
⑷.http服务器告诉tcp断开连接(tcp在客户端完全收到响应报文之前不会断开tcp
连接)。
⑸.当客户端接受完响应报文,本次tcp连接即告结束。
到达的报文说明所封装的内容是
html基本文件,客户端从响应报文中取出文件,对html文件进行解析,从而发现该文件还要引用另外10个jpeg对象。
⑹.针对所有的jpeg对象,需要重复进行前四个步骤。
上述步骤使用的是非坚持连接的的工作模式,由于服务器在每个对象发送后都要关闭tcp连接。
由于tcp连接传输一个请求报文和一个响应报文,这样上述例子传送一个网页需要11次tcp连接,效率比较低。
由于每个请求的对象建立和维持一个“崭新”的连接,在客户端和服务器端都要为tcp分配缓存并保持tcp变量,这会对同时几百个客户服务端的web服务器造成城中负担。
3.2提高http服务效率的两种方法
⒈从一个客户端同时发送多个tcp连接并列到一个web服务器上,即建立“并行”的tcp连接,目前浏览器可以配置5~10个并行连接,每个连接完成一次http的报文交换,但其没有从根本上解决服务器负担问题。
2.使用持续连接模式,服务器在完成一次http报文交互后继续保持连接,统一客户端和服务器之间后继的请求和响应报文可以在原来的连接进行。
4.http报文格式
4.1送往服务器的请求报文
下面是一个浏览器发往服务器的请求报文样例:
get/test/file.hmtlhttp/1.0accept:
text/plainaccept:
application/x-htmlaccept:
application/htmlaccept:
text/x-htmlaccept:
text/htmlaccept:
audio/*
accept:
text/x-setextaccept:
*/*
请求报
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- http 协议 包含 哪些 组成部分