HTTP协议详解

HTTP简介
WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是HTTP协议。
HTTP是hypertext transfer protocol 超文本传输协议的简写,他是TCP/IP协议继承中的一个应用层协议,用于定义WEB浏览器与WEB雾浮起之间交互数据的过程以及数据本身的格式。
污秽等级HTTP1.0的会话方式
四个步骤:
建立连接--发送请求信息--会送相应信息--关闭连接
浏览器与WEB服务器的连接短暂,每次连接只处理一个请求与相应。对每一个页面的访问,浏览器与WEB服务器都要建立一次单独的连接。
马克思进文庙浏览器到WEB服务器之间的所有通讯都是完全独立分开的请求和相应对。
支持代理。
HTTP1.0浏览器访问多图网页的过程
浏览器先发出多次请求响应,每一次得到一个图片。
HTTP1.1与HTTP1.0的比较
HTTP1.1 在一个TCP连接上可以传送多个HTTP请求和相应。
多个请求和相应的过程可以重叠进行。
增加了更多的请求头与响应头。HTTP1.1请求中必须有一个host头字段。
HTTP请求消息
请求消息的构造:
一个请求行,若干个消息头,以及实体内容其中的一些消息头和实体内容都是可选的。消息头和实体内容之间需要空行隔开。就算没有实体也要有空行标示消息结束。
HTTP响应消息
响应消息的结构:
一个状态行,若干个消息头,以及实体内容其中的一些消息头和实体内容都是可选的。消息头和实体内容之间需要空行隔开。
相应消息的实体就是网页文件的内容。
一个使用GET方式请求消息中不能包含实体内容,只有使用POST、PUT、和DELETE方式的请求消息中才可以包含实体内容。
对于HTTP1.1协议来说,如果HTTP消息中包括实体内容,且没有采用chunked传输编码方式,那么消息头部分不惜包含内容长度的字段,否则,客户端与服务器无法知道实体内容何时结束。
简单请求消息:只能用GET方式,请求行不用指定HTTP版本号,无消息头。。对于简单的请求消息,服务器返回简单的相应消息,只包含实体内容。
HTTP消息头
使用消息头,可以实现HTTP客户机与服务器之间的有条件的请求和应答,消息头相当于服务器和浏览器之间的一些暗号指令。
每个消息头包含一个头字段名称,然后依次是冒号、空格、值、回车和换行符。
消息头字段名是不区分大小写的,但习惯将每个单词的第一个字母大写。
整个消息头部分中的各个消息头可以按任何顺序排列。
消息头:信息头,请求头,响应头,实体头四类
许多请求头字段都语序客户端在值部分指定多个可接受的选项,多个项用逗号分隔。
有些头字段可以多次出现。
HTTP的详细讲解
请求行与状态行
求行
格式:请求方式 资源路径 HTTP版本号
eg:GET/test.html HTTP/1.1
Host:
请求方式:
POST、HEAD、OPTIONS、DELETE、TRACE、PUT
状态行
格式:HTTP版本号 状态码 原因叙述
eg:HTTP/1.1 200 OK卵磷脂小体
使用GET和POST方式传递参数
在URL后面可以附加一些参数
http://baidu /tieba?a=2&b=3
GET方式
GET /tieba?a=2&b=3  HTTP/1.1
传送的数据有限制,一般在1KB以下。
POST方式
GET /tieba  HTTP/1.1
Host: Content-Type:application/x-www-from-urlencoded
Conteng-Length:28
a=2&b=3
传送数据量大。
响应状态码
相应状态码表示服务器对请求的各种不同处理结果和状体,他是一个三位的十进制数,相应状态码可以归为5种类型,最高位1-5;
1.100-199
河北建筑工程学院图书馆表示接受请求成功,要求客户端继续提交下一次请求才能完成整个处理过程。
2.200-299
表示成功接受请求并已经完成整个处理过程
3.300-399
未完成请求,客户需要进一步细化请求,如:请求的资源已经移动到一个新地址。苏黎世金融
4.400-499
客户端的请求有错误。
5.500-599
服务器出现错误。
典型情况:200-正常,表示一切正常,返回正常结果。
206-返回部分内容。客户端发送了带有Range头(要求服务器值返回文档的部分内容)的GET请求,服务器按要求完成了这个请求。
302/307-临时重定向。之处被请求的文档已经被临时移动到别处,此文档的新URL在Location响应头汇总给出。
304-未修改。表示客户端缓存的版本是最新的,客户应该继续使用它。
401-未经授权。表示客户端访问的是一个受口令和密码保护的页面,结合使用一个WWW-Authenticate响应头提示客户端应该重新发出一个带有Authenticate头的请求消息
404-不到。
500-内部服务器错误。服务器端的CGI、ASP、JSP、等程序发生错误
通用信息头
通用信息头字段技能用于请求消息,也能用于响应消息。它包括一些与被传输的实体内容没有关系的常用消息头字段。
1.Cache-Control:no-cache
不保存缓存(防止数据库更新,但浏览器不访问更新)
2.Connection:close
当请求访问完,服务器返回结果后,连接怎么设置。默认根据系统超时时间后,在断开。
3.Date:Tue,11 Jul 2008 18:23:51 GMT
请求的时间
4.Pragma:no-cache(固定值)
1.0版本用来不保存缓存的头字段,1.1版本用Cache-Control代替
5.Trailer:Date
指定在实体消息的后边可以出现哪些头字段。
6.Transfer-Encoding:chunked
指定编码方式。
7.Upgrade:HTTP/2.0,SHTTP/1.3
指定服务器可以支持的协议,并希望转换为此协议
8.Via:HTTP/1.1 Proxy1,HTTP/1.1 Proxy2
说明可以使用的代理。
9.Warning:any text
警告信息
请求头:
请求头字段用于客户端在请求消肿向服务器传递附
加信息,主要包括客户端可以接受的数据类型,压缩方法,语言,以及发出请求的超链接所属网页的URL地址等信息。
1.Accept:text/html,image/*
用于指出客户端的浏览器所支持的文件格式。
2.Accept-Charset:ISO-8859-1,unicode-1-1
用于指出客户端可以使用的字符集。
3.Accept-Encoding:gzip,compress
用于指定客户端可以进行解码的数据编码格式,多指压缩格式
4.Accept-Language:en-gb,zh-cn
指定客户端希望服务器返回哪个国家语言的页面。
5.Authorization:Basic enh4OjEyMzQ1Ng==
对于需要验证的网页进行验证。Basic验证方式容易被反向解码。
6.Expect:100-continue
7.From:zxx@qq
指定发送者Email地址
8.Host:www.baidu:8088
指定客户端所访问的资源所在的主机名与端口号。
9.If-Match:"xyzzy","r2d2xxxx"
确定网页是否匹配,确定是否再次请求。
10.If-Modified-Since:Tue,11 Jul 2008    18:23:51 GMT
指定上次缓存文件的修改时间
11.If-None-Match:"xyzzy","r2d2xxxx"
12.If-Range:Tue,11 Jul 2008    18:23:51 GM
13.If-Unmodified-Since:Tue,11 Jul 2008        18:23:51 GMT
14.Max-Forwards:1
当前请求可以通过的代理服务器数目,每增加一个代理服务器就减1
15.Proxy-Authorization:Basic enh4OjEyMzQ1Ng==
16.Range:bytes=100-599 (返回100-599个字节
Range:bytes=100-    (返回100后的所有字节
Range:bytes=-100    (返回最后一百个字节
指定服务器只需返回部分内容,及内容的大小。
17.Referer:www.baidu/index.jsp
指明通过单击超链接进入该网站访问资源的URL
18.TE:trailers,deflate
说明客户端可以接受初chunked以外的编码方式。
19.User-Agent:Mozilla/4.0(compatble;MSIE 5.5;Windows NT5.0)
指定浏览器或其他客户端的名称。服务器据此返回不同的信息。如手机终端或电脑终端。
实体头:
实体头用作实体内容的元信息,描述了实体内容的属性,包括实体信息类型。长度。压缩方法。最后一次修改时间,数据有效期等。
1.Allow:GET,POST
2.Content_Encoding:gzip
实体内容压缩编码格式
3.Content-Language:zh-cn
实体内容国家语言类型
4.Conteng-Length:80
表示实体内容的大小,区分不同访问的不同实体内容。
5.Content-Location:www.baidu
消息内容所访问资源的位置
6.Content-MD5:ABCDABCDABCDABCD==
MD5编码,数字摘要信息,确定实体内容是否缺损。
7.Content-Range:bytes 100-599/7898
返回实体内容所包含的内容的大小。
8.Content-Type:text/html;charset=GB2312
浏览器收到的实体消息只是二进制编码
返回实体内容的格式数据以及编码各省市,以便浏览器就行翻译,如通知浏览器返回了一个视频文件,要求浏览器用播放器打开。如果省略字符编码格式,默认为ISO的英文编码格式。
9.Expires:Tue,11 Jul 2008    18:23
:51 GMT
指定当前的文件在什么时候过期,以便浏览器不去读取缓存而是去重新访问。这个不太可靠。
10.Last-Modified:Tue,11 Jul 2008    18:23:51 GMT
缓存文档最后更新时间
扩展头
在HTTP消息中,也可以使用一些在HTTP1.1正是规范中没有定义的头字段,称为扩展头,被当实体头处理。
Cookie、Set-Cookie、Refresh 和Content-Disposition廖满嫦
Refresh头字段 高速浏览器过多少秒后重新访问URl
Refresh:1
过一秒后重新发送请求。
Refresh:1,url=www.baidu
过1秒后,跳转至url
Content-Disposition头字段,将实体内容保存至一个文件或其他。
Content-type:application/octet-stream
content-Disposition:attachment;filename=aaa.zip

本文发布于:2024-09-22 03:57:06,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/263306.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:请求   内容   实体   消息   客户端
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议