持久HTTP 非持久HTTP的问题: 无流水线方式: 口获取每个对象需要2个RTT 口客户仅当收到前一个响应 口每个TCP连接需要消耗操作系 后再发送新的请求 统资源 口请求每个对象用时1个RTT 口浏览器通常打开多个TCP连接请求一个网页用时12RT 获取引用对象,消耗资源 流水线方式: 持久HTTP 口HTTP/1.1缺省使用该方式 口服务器在发送响应后保持连接 口客户每解析到一个引用对 象就可以发送请求 口同一对客户-服务器之间的后 续HTTP报文可以在该连接上 可在一个RTT时间内请求 传输 所有引用对象 口请求一个网页用时约3RTT 2: Application Layer 27
2: Application Layer 27 持久 HTTP 非持久HTTP 的问题: 获取每个对象需要2个RTT 每个TCP连接需要消耗操作系 统资源 浏览器通常打开多个TCP连接 获取引用对象,消耗资源 持久 HTTP 服务器在发送响应后保持连接 同一对客户-服务器之间的后 续HTTP报文可以在该连接上 传输 无流水线方式: 客户仅当收到前一个响应 后再发送新的请求 请求每个对象用时1个RTT 请求一个网页用时12RTT 流水线方式: HTTP/1.1缺省使用该方式 客户每解析到一个引用对 象就可以发送请求 可在一个RTT时间内请求 所有引用对象 请求一个网页用时约3RTT
2.2.3HTTP报文格式 口两类HTTP报文:请求报文,响应报文 口HTTP报文由ASCII文本构成 口HTTP请求报文: method sp URL sp version cr If request header field name value crIf header lines header field name value cr Application Lo
2: Application Layer 28 2.2.3 HTTP 报文格式 两类HTTP报文: 请求报文,响应报文 HTTP报文由ASCII文本构成 HTTP请求报文:
HTTP请求报文 口报头包括: 请求行 Get/SomedIr/page.html Http/1.1 Hostwww.someschool.edu User-agent: Mozilla/4.0 首部行 Connection:ci。se Accept-language: fr (extra carriage return, line feed) 个额外的回车换 行表示报头结束 Application Layer 29
2: Application Layer 29 HTTP请求报文 报头包括: GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr (extra carriage return, line feed) 请求行 首部行 一个额外的回车换 行表示报头结束
上传表单输入 Post方法: 口Web页通常包含表单输 入 URL方法: T输入的表单内容放在报使用GET方法 文体中上传到服务器 输入内容放在请求行的 URL字段中上传,如: Www.SomesIte.com/animalsearch?monkeysbanana Application Layer 30
2: Application Layer 30 上传表单输入 Post 方法: Web页通常包含表单输 入 输入的表单内容放在报 文体中上传到服务器 URL 方法: 使用 GET 方法 输入内容放在请求行的 URL字段中上传,如: www.somesite.com/animalsearch?monkeys&banana
HTTP方法 Http/1.0 Http/1.1 O GET 口GET,POST,HEAD O POST U PUT J HEAD 将文件放在报文实体 要求服务器不返回对 中,传到URL字段指 象,只用一个报文头 定的路径 响应(实体为空),口 DELETE 常用于故障跟踪。 删除URL字段指示的 文件 Application Layer 31
2: Application Layer 31 HTTP方法 HTTP/1.0 GET POST HEAD ❖ 要求服务器不返回对 象,只用一个报文头 响应(实体为空), 常用于故障跟踪。 HTTP/1.1 GET, POST, HEAD PUT ❖ 将文件放在报文实体 中,传到URL字段指 定的路径 DELETE ❖ 删除URL字段指示的 文件