计算机网络之超文本传送协议 HTTP

HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。 

HTTP 的主要特点

HTTP 是面向事务的客户服务器协议。
HTTP 1.0 协议是无状态的(stateless)。
HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
万维网浏览器就是一个 HTTP 客户,而在万维网服务器等待 HTTP 请求的进程常称为 HTTP daemon,有的文献将它缩写为 HTTPD。
HTTP daemon 在收到 HTTP 客户的请求后,把所需的文件返回给 HTTP 客户。

万维网的工作过程 

(1) 浏览器分析超链指向页面的 URL。
(2) 浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP 地址。
(3) 域名系统 DNS 解析出清华大学服务器的 IP 地址。
(4) 浏览器与服务器建立 TCP 连接
(5) 浏览器发出取文件命令:
      GET /chn/yxsz/index.htm。
(6) 服务器 给出响应,把文件 index.htm 发给浏览器。
(7) TCP 连接释放。
(8) 浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。


万维网高速缓存 (Web cache) 

万维网高速缓存代表浏览器发出 HTTP 请求,因此又称为代理服务器(proxy server)。
万维网高速缓存将最近的一些请求和响应暂存在本地磁盘中。
当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去因特网访问该资源。

使用高速缓存可减少 访问因特网服务器的时延 


1) 浏览器访问因特网的服务器时,要先与校园网的高速缓存建立 TCP 连接,并向高速缓存发出 HTTP 请求报文 


2) 若高速缓存已经存放了所请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器。

3) 否则,高速缓存就代表发出请求的用户浏览器,与因特网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文。

4) 源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的高速缓存。

5) 高速缓存收到此对象后,先复制在其本地存储器中(为今后使用),然后再将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器。

HTTP 的报文结构

HTTP 有两类报文:
请求报文——从客户向服务器发送请求报文。
响应报文——从服务器到客户的回答。
由于 HTTP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。


报文由三个部分组成,即开始行、首部行和实体主体。
在请求报文中,开始行就是请求行。

“方法”是面向对象技术中使用的专门名词。所谓“方法”就是对所请求的对象进行的操作,因此这些方法实际上也就是一些命令。因此,请求报文的类型是由它所采用的方法决定的。


“URL”是所请求的资源的 URL

“版本”是 HTTP 的版本


响应报文的开始行是状态行。
状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。

状态码都是三位数字 

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

301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:
301 redirect: 301 代表永久性转移(Permanently Moved),
302 redirect: 302 代表暂时性转移(Temporarily Moved ),
404 找不到网页
403 已禁止
401 未授权
400 请求失败;服务器不理解请求语法

(1) HTTP超文本传输协议用于定义web页面(超文本)在网络上的交互方式的应用层协议,使用客户/服务器的工作方式。HTTP协议定义了web客户端(浏览器)如何向web站点请求web网页以及web服务器如何将web页传送给客户机。当用户请求一个页面时,浏览器会向web服务器发出对该页及其引用的相关对象的HTTP请求报文,服务器响应这些请求报文,生成HTTP响应报文,并将请求的对象附在HTTP响应报文后发送给客户端。 (2) 由于网页文档的传输需要可靠性的保证,所以HTTP协议使用TCP协议,TCP协议是一个面向连接的协议,在通信时需要建立连接,通信结束要释放连接,TCP建立连接时需要三次握手,提供可靠的数据传输,HTTP协议默认端口为80. (3) HTTP协议包括HTTP1.0:RFC1945和HTTP1.1:RFC 2068.HTTP1.1兼容HTTP1.0。HTTP1.0是采用非持续连接和非流水线作业方式,而HTTP1.1采用持续连接和流水线作业方式。 (4) Web缓存的进一步讨论,保证web缓存代理服务器缓存页面能够和web服务器的最新页面一致的方法。 (5) HTTP协议的无状态性:服务器无法通过HTTP协议记录用户的登录信息。使用Cookie保存信息。 (1) 打开wireshark开始抓包,然后上网至江西师大教务在线网(www.jxnu.edu.cn),连接后停止(stop)抓包。设置过滤规则:udp.port==53||tcp.port==80.(HTTP协议默认使用传输层TCP协议的80端口),考虑到我的电脑未能连网,所以选择老师抓好的包做实验分析。 (2) 分析HTTP协议报文。 (2) 第一阶段:TCP建立连接阶段。第三帧是web客户端(即浏览器,源IP地址为192.168.0.250)发给web服务器端(目标IP地址为218.65.113.46)的TCP连接的第一次握手(SYN)。第四帧是web服务器端与web客户端的TCP连接的第二次握手(SYN,ACK)。第五帧是浏览器与web服务器的TCP连接的第三次握手(ACK),此时TCP连接建立。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值