万维网WWW

万维网概述

万维网WWW(World Wide Web)是一个大规模的联机式的信息储藏场所。万维网以客户-服务器方式工作,浏览器就是在用户主机上的万维网客户程序,万维网文档所驻留的主机运行服务器程序。客户程序向服务器程序发出请求,服务器程序向客户返回客户所需要的万维网文档。

1.用什么样的协议来实现万维网上的各种访问

HTTP(HyperText Transfer Protocol)超文本传输协议,HTTP是应用层协议,使用TCP连接进行可靠的传送。

URL统一资源定位符,URL用来表示从互联网上得到资源的位置和访问资源的方法,URL实际上是互联网上资源的地址,URL的一般形式由四部分组成:
<协议>://<域名>:<端口>/<路径>

协议:指HTTP协议,其次是ftp.
域名:指该主机在互联网的域名。
端口:默认为端口80,可以省略。
路径:表示该资源在互联网主机中的位置。

例如:http://www.tshua.edu.cn/publish/newh/index.html

协议:http
域名:www.tshua.edu.cn
端口号:80
路径:publish/newh/index.html

2.HTTP的操作过程

HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。

从层次角度看,HTTP是面向事务的应用层协议,是万维网上能够可靠的交换文件的重要基础。
在这里插入图片描述

每个服务器进程,不断地监听TCP的80端口,以便发现是否有浏览器向他发出连接建立请求,一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向服务器发出请求某个页面,服务器返回所请求的页面作为响应,最后释放tcp连接,按照规定的格式和遵循的一定规则。这些格式和规则就是超文本传输协议HTTP。

HTTP使用的是面向连接的TCP作为运输层协议,保证了数据的可靠传输,HTTP协议本身是无连接的,虽然HTTP使用了TCP连接,但通信的双方减缓HTTP报文时不用建立HTTP连接。

HTTP协议是无状态的,即同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同,因为服务器不记得该客户,也不记得为该客户服务了多少次。

4.从浏览器请求一个万维网文档到收到整个文档所需要的时间:

用户在点击鼠标链接某个互联网文档时,HTTP协议首先要与服务器建立TCP连接。这需要3次报文握手,当建立TCP连接的三报文握手的前2部分完成后(经过1个RT时间),万维网客户就把HTTP请求报文,作为TCP连接的三报文握手的第三个报文的数据,发送给万维网服务器。服务器收到HTTP请求报文后,就把所请求的文档作为响应报文返回给客户。
在这里插入图片描述

从图中可以看出,请求一个万维网文档所需要的时间是:该文档的传输时间+2倍的往返事件RTT(一个RTT用于TCP连接,一个RTT用于请求接收文档)。

5.HTTP的报文结构

一、HTTP有2类报文:

1.请求报文------从客户向服务器发送请求报文
2.响应报文------从服务器到客户的回答

HTTP是面向文本的,请求报文和响应报文都是由三部分组成。

1.开始行,用于区分是请求报文还是响应报文。请求报文的开始行叫做请求行(Request-Line),响应报文的开始行叫做状态行(Status-Line)。CR和LF分别表示回车与换行。
2.首部行,说明浏览器、服务器、报文主体的信息。
3.实体主体,在请求报文中一般不用这个字段,在响应报文中没有这个字段

请求报文的第一行请求行只有三个内容,即方法,请求资源的URL,及HTTP的版本。

方法是对所请求对象的操作

方法意义
GET请求读取由URL所标志的信息
POST给服务器添加信息
PUT在指明的URL下存储一个文档
DELETE删除指明的URL所标志的资源
CONNECT用于代理服务器

下面是HTTP的请求报文的开始行(即请求行)的格式。在GET后面有一个空格,接着是某个完整的URL,其后又有一个空格,最后是HTTP/1.1。

表示客户机向地址为http://www.xyz.edu.cn的服务器主机请求一个index.html文档。

GET http://www.xyz.edu.cn/dir/index.html HTTP/1.1

一个完整的HTTP请求报文
GET /dir/index/html HTTP/1.1     请求行使用了相对URL
Host:www.xyz.edu.cn         此行是首部行的开始,给出主机的域名
Connection:close             告诉服务器发送完请求的文档后就可以释放连接
User-Agent:Mozilla/5.0         表明用户代理是火狐浏览器Firefox
Accecpt-Language:cn         用户优先希望获得中文版本文档

第三行告诉服务器不使用持续连接,表示浏览器希望服务器在传送完所请求的对象后关闭tcp连接。

2.响应报文

每一个请求报文发出后,都能收到一个响应报文。
响应报文的第一行为状态行,状态行包括3个内容,即HTTP的版本,状态码,解释状态码的简单用语。

状态码为3位数字,分为5大类。

1xx 表示通知信息,如请求收到了或正在进行的处理
2xx 表示成功,如知道了或收到
3xx 表示重定向,如要完成请求必须采取进一步的行动
4xx 表示客户差错,有错误的语法或不能完成
5xx 表示服务器差错,如服务器失效,无法完成请求

HTTP/1.1 202 Accepted     接受
HTTP/1.1 400 Bad Request     错误的请求
HTTP/1.1 404 Not Found     找不到

6.Cookie:

HTTP是无状态的,服务器不会识别客户,我们可以使用Cookie来实现服务器识别客户这一功能。

当用户A浏览某个网站时,该网站的服务器就为A生成了一个唯一的识别码,并以此为索引在后端数据库中产生一个项目,接着在给A的响应报文中添加一个Set-Cookie的首部行。这里的“首部字段名”就是"Set-cookie",后面的值就是赋予该用户的“识别码”。例如首部行如下:
Set-Cookie:31d4d96e407aad42

当A收到这个响应之后,其浏览器就在特定的cookie文件中添加一行,其中包括这个服务器的主机名和Set-Cookie后面的识别码。

当A继续浏览这个网站时,每发送一个请求报文,浏览器就会从其Cookie文件中取出这个网站的识别码,放到HTTP请求报文的Cookie首部行中:
Cookie:31d4d96e407aad402

这样网站就可以识别追踪用户A了,服务器可以知道用户A什么时间访问了哪些数据,以及访问页面的顺序。

Cookie只是一个小小的文本文件,不是计算机可执行程序,因此不可能传播计算机病毒。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值