当前位置:文档之家› http协议讲解

http协议讲解

HTTP 测试
小组成员:任壮祖 韩远兵 李 丽陈 婧
HTTP 测试
• HTTP 协议综述
• HTTP中GET和POST的主要区别 • URL提取程序设计
• HTTP协议的几个重要概念
• • • • • • • 1.连接(Connection) 2消息(Message) 3.请求(Request) 4.响应(Response) 5.资源(Resource) 6.实体(Entity) 7.客户机(Client)
HTTP/1.0 HTTP/0.9
(2)请求头部 请求头部由关键字/值对组成,每行一对,关键字和值 用英文冒号“:”分隔。请求头部通知服务器有关于 客户端请求的信息。
首部行中HTTP最常见的请求头
• • • • • • • • Accept:浏览器可接受的MIME类型。 Connection:表示是否需要持久连接。 Host:初始URL中的主机和端口。 Referer:包含一个URL,用户从该URL代表的页面出发 访问当前请求的页面。 User-Agent:浏览器类型,如果Servlet返回的内容与浏览 器类型有关则该值非常有用。 Accept-Encoding:浏览器能够进行解码的数据编码方式。 Content-Length:表示请求消息正文的长度 Cookie:辨别用户身份
4.无连接:无连接的含义是限制每次连接只处理一个请求。 服务器处理完客户的请求,并收到客户的应答后,即断开 连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于 事务处理没有记忆能力。缺少状态意味着如果后续处理需 要前面的信息,则它必须重传,这样可能导致每次连接传 送的数据量增大。另一方面,在服务器不需要先前信息时 它的应答就较快。
• 默认HTTP的端口号为80,HTTPS的端口号为443。
• SSL概述
• SSL(全称:Secure Socket Layer) 安全套接层协议主要是使用公开密钥体制和X.509数字证 书技术保证信息传输的机密性和完整性,它不能保证信息 的不可抵赖性,主要适用于点对点之间的信息传输,常用 Web Serverf方式。
• 常用的通用头域 (1)Cache-Control头域 Cache-Control指定请求和响应遵循的缓存机制。在请求 消息或响应消息中设置Cache-Control并不会修改另一个 消息处理过程中的缓存处理过程。
• (2)Connection头域 表示是否需要持久连接(Keep-Allive/close)
HTTP协议的主要特点可概括如下:
• 1.支持客户/服务器模式。 • 2.简单快速:客户向服务器请求服务时,只需传送请求方 法和路径。请求方法常用的有GET和POST。由于HTTP 协议简单,使得HTTP服务器的程序规模小,因而通信速 度很快。
• 3.灵活:HTTP允许传输任意类型的数据对象。正在传输 的类型由Content-Type加以标记。
• • • • • •
8.用户代理(User Agent) 9.服务器(Server) 10.原服务器(Origen Server) 11.年龄(Age) 12.保鲜(Fresh) 13.陈旧(State)
URI、URL和URN之间的区别与联系
• URI:Uniform Resource Identifier,统一资源标识符; • URL:Uniform Resource Locator,统一资源定位符; • URN:Uniform Resource Name,统一资源名称。 • 其中,URL,URN是URI的子集。 • Web上地址的基本形式是URI,它代表统一资源标识符。有 两种形式: • URL:目前URI的最普遍形式就是无处不在的URL或统一 资源定位器。 • URN:URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,并且有可能减 少失效连接的个数。但是其流行还需假以时日,因为它需 要更精密软件的支持。
(3)空行
最后一个请求头之后是一个空行,发送回车符和换行符, 通知服务器以下不再有请求头。 (4)实体主体 请求数据不在GET方法中使用,而是在POST方法中使用。 POST方法适用于需要客户填写表单的场合。与请求数据 相关的最常使用的请求头是Content-Type和ContentLength。
• HTTP常见的实体头域
• Content-Encoding:WEB服务器表明自己使用了什么压缩 方法(gzip,deflate)压缩响应中的对象。 • Content-Length:发送给HTTP服务器数据的长度 • Content-Type:WEB服务器告诉浏览器自己响应的对象的 类型和字符集 • Content-Language: WEB服务器告诉浏览器自己响应的 对象的语言者 • Last-Modified:实体对象的最后修改的时间
首部行中HTTP最常见的响应头
• Date头域表示消息发送的时间,时间的描述格式由rfc822 定义。 • Content-Length 表示内容长度。 • Server 服务器名字。Servlet一般不设置这个值,而是由 Web服务器自己设置。 • Content-Type 表示后面的文档属于什么MIME类型。 • Cache-Control指定请求和响应遵循的缓存机制。
HTTP的宏观操作过程
一次HTTP操作称为一个事务,其过程分为四步: (1)首先客户机与服务器需要建立连接。只要单击某个超级 链接,HTTP的工作就开始了。 (2)建立连接后,客户机发送一个请求给服务器,请求方式 的格式为:统一资源标识符(URL)、协议版本号,后边 是MIME信息,包括请求修饰符、客户机信息和可能的内容。 (3)服务器接到请求后,给予相应的响应信息,其格式为一 个状态行,包括信息的协议版本号、一个成功或错误的代 码,后边的MIME信息包括服务器信息、实体信息和可能的 内容。 (4)客户端接收服务器所返回的信息通过浏览器显示在用户 的显示屏上,然后客户机与服务器断开连接。 如果在以 上过程中的某一步出现错误,那么产生错误的信息将返回 到客户端,有显示屏输出。
HTTP 的报文结构
• HTTP有两类报文: (1) 请求报文——从客户端向服务器发送请求报文。 (2) 响应报文——从服务器到客户端的回答。
请求报文
• 有三部分组成:请求行 首部行 实体主体
(1)请求行
• 请求方法
其中,GET和POST 是常用请求方法
(1)请求行
• URL 统一资源定位符是对可以从互联网上得到的资源的位置和 访问方法的一种简洁的表示,是互联网上标准资源的地址。 HTTP的URL的一般形式是: <HTTP>://<主机>:<端口>/<路径> • 协议版本 HTTP/1.1
• (3)Date头域 Date头域表示消息发送的时间,时间的描述格式由rfc822 定义。例如:Date: Tue, 11 Jul 2000 18:30:30 GMT 。 Date描述的时间表示世界标准时,换算成本地时间,需要 知道用户所在的时区。
HTTP常见的请求头域
Accept:text/html,image 用于告诉服务器, 客户机支持的数 据类型 Accept-Charaset:ISO-8859-1 客户机支持的编码 Accept-Encoding:gzip 客户机支持的数据压缩格式 Accept-Language: zh-cn 客户机支持的语言 Host: 告诉服务器,想访问的主机名 Referer: 从哪个资源访问服务器(常用于 防盗链) User-Agent:Mozilla 4.0 告诉客户机的软件环境 Cookie:可以带给服务器客户端的数据 Connection:close/Keep-Alive 请求后是关闭,还是保持连接
HTTP 协议的内部操作过程
• HTTP的头域
主要包括:通用头,请求头域,响应头域和实体头域四个 部分。每个头域由一个域名,冒号(:)和域值三部分组 成。域名是大小写无关的,域值前可以添加任何数量的空 格符,头域可以被扩展为多行,在每行开始处,使用至少 一个空格或制表符。
• 通用头域 通用头域包含请求和响应消息都支持的头域,通用头域包 含Cache-Control、Connection、Date、Pragma、 Transfer-Encoding、Upgrade、Via。对通用头域的扩展 要求通讯双方都支持此扩展,如果存在不支持的通用头域, 一般将会作为实体头域处理。
HTTPS概述
• HTTPS(Hypertext Transfer Protocol over Secure Socket Layer) • 即HTTP下加入SSL层,用于安全的HTTP数据传输。 HTTPS存在不同于HTTP的默认端口及一个加密/身份验证 层(在HTTP与TCP之间)。这个系统的最初研发由网景 公司进行,提供身份验证与加密通讯方法,现在它被广泛 用于万维网上安全敏感的通讯,例如交易支付方面
• 持续链接就是WEB服务器在发送响应后仍然在一段时间 内保持这条链接,使同一个客户和该服务器可以继续在这 条链接上传输后续的HTTP请求报文和响应报文。 • HTTP协议持续连接的两种工作方式: 1)飞流水线方式 2)流水方式
代理服务器
• 代理服务器是介于浏览器和Web服务器之间的一台服务器, 有了它之后,浏览器不是直接到Web服务器去取回网页而 是向代理服务器发出请求,请求信号会先送到代理服务器, 由代理服务器来取回浏览器所需要的信息并传送给你的浏 览器。 • 大部分代理服务器都具有缓冲的功能,就好象一个大的 Cache,它有很大的存储空间,它不断将新取得数据储存 到它本机的存储器上,如果浏览器所请求的数据在它本机 的存储器上已经存在而且是最新的,那么它就不重新从 Web服务器取数据,而直接将存储器上的数据传送给用户 的浏览器,这样就能显著提高浏览速度和效率。
HTTP常见的响应头域
• HTTP/1.1 200 OK 状态行,200是状态码表ttp302状态码使用,告 诉客户机应该找谁
相关主题