第9章 应用层(4)_超文本传输协议HTTP
5. 超文本传输协议HTTP
5.1 统一资源定位符URL
(1)URL的一般形式:<协议>://<主机>:<端口>/<路径>
①协议后面必须写上“://”,不能省略;
②主机是指该主机在因特网上的域名或IP地址;
③端口和路径有时候可以省略。
(2)举例
①HTTP的URL一般形式:http://<主机>:<端口>/<路径>。其中端口默认为80,通常可省略。
②FTP的URL一般形式:ftp:// <主机>:<端口>/<路径>。其中端口号默认为21。如ftp://user:pwd@61.155.139.141:9921。
5.2 绝对路径和相对路径
(1)绝对路径(URL):为文件提供完全的路径,包括使用的协议,如http、ftp和rtsp等。如http://www.sohu.com,ftp://202.136.254.1。当链接到其他网站资源时,必须使用绝对路径。
(2)相对路径:指向站点文件夹之内的文件(或文件夹)。只要是同一网站之下的,即使不在同一个目录之下,相对路径也非常合适。
①如果链接到同一目录下,则只需要输入要链接文档的名称。
②要链接到下一级目录中的文件,只需先输入目录名,然后加“/”再输入文件名。
③如果要链接到上一级目录中的文件,则先输入“../”,再输入目录名、文件名。
(3)根路径:相对于网站的根目录。以斜杠开头,然后是文件夹名,最后写文件名。如“/dir/file1.txt”
5.3 HTTP协议版本
(1)http1.0和http1.1的比较
①由于Web站点访问量大,为了提高系统的效率,HTTP1.0规定浏览器与服务只保持短暂连接,浏览器的每次请求都需要与服务器建立一个tcp连接。这也造成一些性能上的缺陷。比如,当一个包含许多图像的网页文件(如大量的<img>标签),每下载一个图像文件都必须单独创建一个tcp连接,那怕图像文件很小也如此。由于频繁建立和关闭tcp连接会严重影响服务器的性能。

②http1.1支持持续连接。指的是Web服务器在发送响应后的一段时间内仍保持这条连接,使同一客户(浏览器)和该服务器的通信可以继续使用该连接。这并不局限于传送同一个页面上链接的文档,而只要这些文档都在同一个服务器上就行,它减少了建立和关闭连接的浪费。(目前IE默认使用http1.1,可在“工具”→“Internet选项”→“高级”→“HTTP1.1设置”中设置或取消,若取消则使用的是1.0版本)
(2)http1.1持续连接的两种工作方式

①非流水线方式的特点:客户在收到前一个响应后才能发出下一个请求。因此在TCP连接建立后,客户每访问一次对象都要用去一个往返时间RTT。如果要下载的文件很多,服务器在发送完一个对象后,其TCP连接就处理空闲状态,浪费了服务器资源。
②流水线方式的特点:客户在收到http的响应报文 就能够接着发送新的请求报文。于是一个接一个的请求报文到达服务器后,服务器就可以连接发回响应报文。这种方式使TCP连接的空闲时间减少,提高了文档的下载效率。因此,下载速度比非流水线的快很多。
5.4 HTTP的请求报文和响应报文
(1)请求报文(从客户端向服务器发送的请求报文)

①由于http是面向文本的,因此在报文中的每个字段都是一些ASCII码串,通常以\r\n结束。
②http请求报文由三部分组成:A.开始行。主要用于区别是请求报文还是响应服文。B.首部行,用来说明浏览器、服务器或报文主体的一些信息。首部可以多行,也可以不使用。每一行都以“回车”和“换行”结束。整个部分行结束,还要有一个“回车”和“换行”。C.实体主体。在请求报文中一般不用这个字段,而响应报文中也可能没有这个字段。
③“请求行”的“Request Method”共有8方法(见上图)。用来表示对“Request URI”指定的资源的不同操作方式,注意方法名是区别大小写的!
(2)响应报文(从服务器到客户端的应答)

①响应报文的第1行是状态行:包括http版本、状态码以及解释状态码的简单短语等三项内容。
②状态码(Status Code)共5大类33种
| 
 状态码  | 
 含义  | 
| 
 1xx  | 
 表示通知信息。如请求收到了或正在进行处理  | 
| 
 2xx  | 
 表示成功。如接受或知道了  | 
| 
 3xx  | 
 表示重定向。如要完成请求还必须采取进一步的行动  | 
| 
 4xx  | 
 表示客户端的错误。如请求中有错误的语法或不能完成  | 
| 
 5xx  | 
 表示服务器的差错。如服务器失效无法完成请求  | 
5.5 Cookie
(1)Cookie简介:
①由于http是一种无状态的协议。为了记录信息,当客户端请求服务器时,如果服务器记录需要记录该用户的状态,就使用response向客户端浏览器颁发一个Cookie,客户端浏览器会把Cookie保存起来。
②当浏览器再次请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器会检查该Cookie,还可以根据需要修改Cookie的内容。
(2)Cookie的导出和导入
①导出:浏览126邮箱,选择“十天内免登录”。然后“文件”→“导入和导出”→“导出Cookie” →指定保存位置
②导入:在另一台计算机上,打开浏览器→“文件”→“导入和导出”→“导入Cookie”,然后打开126邮箱,该网站自动读取Cookie并自动登录。
(3)Cookie安全(删除Cookie):“Internet选项”→“常规”→“删除Cookie”
5.6 通过代理服务器访问网站
(1)代理服务器应用场景
①使用代理服务器,绕过防火墙封锁。由于国内防火墙拦截了到某些国外网站(如B)的流量。但国外有很多Web代理服务器(如C),国内用户可以设置浏览器使用国外的代理服务器,然后再去访问这些网站就能成功。

②提高内网用户的访问速度。代理服务器可以缓存用户访问过的内容,当其他用户再访问相同的URL时,由代理服务器从缓存中找到要访问的信息,传给用户,从而提高访问速度。

③隐藏真实IP。有些网站的论坛会记录发贴人的IP地址,可以使用代理服务器去访问,这样网站只会记录代理的地址,从而隐藏自己的IP。
(2)架设Web代理服务器
①将Win2003虚拟机架设成Web代理服务器:运行CCProxy软件。(注意本机IP:192.16.80.20,运行该软件后默认会在808端口监听客户端连接)

②通常代理服务器有两个网卡,一个连接Internet,一个连接内网。连接内网的网卡为内网计算机上网的代理地址。(本实验Web代理服务器就一个网卡,因此需要指定哪个地址可以作为代理地址,方法是CCProxy→“帐户” →在“允许范围”中选择“允许所有”)。

(3)测试代理
①xp机上指定使用代理服务器:打开IE→“工具”→“Internet选项”→“连接”选项卡→“局域网设置”→在“代理服务器”中填入IP和端口(如上面的IP:192.168.80.20,端口808)

②浏览网站。然后用netstat -an查看,就可以看到只有和Web代理建立的TCP连接了。也可以在Win2003的代理服务软件的“监控”中看到这些信息。

第9章 应用层(4)_超文本传输协议HTTP的更多相关文章
- 【知识强化】第六章 应用层 6.3 文件传输协议FTP
		
这节课我们来学习一下文件传输协议FTP. 我们知道一个文件的传输过程呢一定需要协议的规定,那在文件传送协议这一块呢有很多个协议.比较主要的两个一个是文件传送协议FTP,一个是简单文件传送协议TFTP. ...
 - 【RL-TCPnet网络教程】第41章    HTTP超文本传输协议基础知识
		
第41章 HTTP超文本传输协议基础知识 本章节为大家讲解HTTP(HyperText Transfer Protocol,超文本传输协议),从本章节开始,正式进入嵌入式Web的设计和学习. ...
 - HTTP超文本传输协议-HTTP/1.1中文版
		
摘要 超文本传输协议(HTTP)是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议.它是一种通用的,不分状态(stateless)的协议,除了诸如名称服务和分布对象管理系统之类的超文本用途外 ...
 - 超文本传输协议-HTTP/1.1
		
超文本传输协议-HTTP/1.1(修订版) ---译者:孙超进本协议不限流传发布.版权声明Copyright (C) The Internet Society (1999). All Rights R ...
 - HTTPS----安全超文本传输协议
		
HTTPS协议详解HTTPS以保密为目标研发,简单讲是HTTP的安全版.其安全基础是SSL协议,因此加密的详细内容请看SSL.全称Hypertext Transfer Protocol over Se ...
 - http    超文本传输协议
		
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的是为了提供一种发布和接 ...
 - 安全超文本传输协议(HTTPS)详解
		
一.概念与摘要 HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,是一个安全通信通道,它基于HTTP开发用于在客户计算机和服务器之间交换信息.它使 ...
 - Hyper Text Transfer Protocol(超文本传输协议)
		
HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送 ...
 - 超文本传输协议http详解
		
HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第 ...
 
随机推荐
- 项目中更新pip 问题。更新后还是老版本
			
(venv) E:\renyuwang\venv\Scripts>python -m pip install --upgrade pipRequirement already up-to-dat ...
 - 你不知道的JavaScript(上卷) (Kyle Simpson 著)
			
第一部分 作用域和闭包 第1章 作用域是什么 (已看) 1.1 编译原理 1.2 理解作用域 1.2.1 演员表 1.2.2 对话 1.2.3 编译器有话说 1.2.4 引擎和作用域的对话 1.2.5 ...
 - 利用反射C#获取事件列表
			
在程序设计中有时候需要动态订阅客户自己的事件,调用完成后又要删除以前订阅的事件.因为如果不删除,有时会造成事件是会重复订阅,导致程序运行异常.一个办法是用反射来控件事件列表.清空方法代码如下: /// ...
 - JSON字符串转C#实体Class类
			
在项目开发过程中,经常需要和不同部门或者不同的组员一起协同工作,但对方写的json返回的结果集,我们需要用,那么如何来生成对应的类代码和实体对象呢?于是参考了网上的做法,做一个简单的字符串转实体类的功 ...
 - 主机-配件-接口-整机-3c-1
			
standby 待机 hibernate 休眠(睡眠) power-off 关机 usb端口能给外部设备充电在低压状态(standby,hibernate,power-off),如果系统运行在batt ...
 - ThinkPHP3.2 where方法的使用
			
where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询.表达式查询.快捷查询.区间查询.组合查询在内的查询操作.where方法 ...
 - python之路---06 小数据池 编码
			
二十二.小数据池, id() 进行缓存 1.小数据池针对的是: int, str, bool 2.在py文件中几乎所有的字符串都会缓存. 在cmd命令窗口中几乎都不会缓存 不同的解释器有 ...
 - 错误:php70w-common conflicts with php-common-5.3.3-49.el6.i686
			
记录一下 由于之前系统自带的php5.3.3没有卸载干净: 在执行phpize时报错说需要php-devel 然后yum -y install php-delel ; 然后就报错 错误:php70w ...
 - java IO流(一)
			
一.IO流概述 1 什么是IO流 (流就是通道对象) IO - Input(输入) Output(输出) 在Java的IO中,流是一个很形象的概念,就像水流一样. 当程序需要读取数据的时候,就会开启一 ...
 - SystemParametersinfo  用法
			
var BmpPath: PChar; begin BmpPath := 'C:\Temp\Test.bmp'; SystemParametersInfo(SPI_SETDESKWALLP ...