HTTP协议

(1)万维网

首先先学习下万维网WWW(world wide web)是一个大规模的、联机式的信息储藏所。我们在万维网上能非常方便的从因特网的一个站点访问另一个站点。万维网是一个分布式的超媒体系统,它是超文本的扩充,一个超文本由多个信息源链接成,而这些信息源的数目实际上是不受限制的。我们可以利用一个链接找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。

超媒体与超文本的区别是文档内容不同,超文本文档只包括文本信息,而超媒体文档还包含其他表示方式的信息,比如图形、声音、动画,甚至活动视频图像。

分布式与非分布式的超媒体系统也有很大的区别。非分布式的系统中,各种信息都驻留在单个计算机的磁盘中,因为各种文档都可从本地获得,对这些文档之间的链接可进行一致性检查。因此非分布式超媒体系统能够保证所有的链接都是有效和一致的。分布式系统中,每台计算机上的文档都独立进行管理,对文档的增改删操作不需要通知到因特网上的各个节点。这样分布式系统中的链接就会经常不一致。

万维网以C/S的方式工作。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的文档。

(2)如何标志万维网上的文档呢

URL统一资源定位符。相当于一个文件名在网络范围中的一个扩展,一方面是任何可访问对象的一个指针,另一方面还指出了读取某个对象时所使用的访问方式。

一般形式:<URL的访问方式>://<主机>:<端口>/<路径>

URL的访问方式主要有http、ftp、news。主机是必须的,端口和路径可以省略。

比如使用http的URL。HTTP的默认端口号是80,通常可以省略。如果再省略了路径,那么URL就指到了因特网上的某个主页。如http://www.tsinghua.edu.cn

URL不区分大小写,但有的界面为使读者看起来方便,故意使用一些大写字母。

(3)超文本传送协议HTTP

http是面向事务的应用层协议。每个万维网网点都有一个服务器进程,它不断的监听TCP端口80,以便发现是否有浏览器(客户进程)向它发出连接建立请求。一旦监听到,并建立了TCP连接后,浏览器就向服务器发出浏览某个页面的请求,服务器接着就返回所请求的界面作为响应。最后TCP就被释放了。在浏览器和服务器之间的请求和响应的交互,必须按照规定的规定的格式和遵循一定的规则。这些格式和规则就是超文本传送协议HTTP。

比如你点击了页面上的一个可选部分,而这个部分是清华大学院系设置的页面,那么随后发生的事情是:

1.浏览器分析超链指向页面的URL

2.浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址

3.域名系统DNS解析出清华大学服务器的IP地址为166.111.4.100

4.浏览器与服务器建立TCP连接(服务端IP地址为166.111.4.100,端口是80)

5.浏览器发出取文件命令:GET/chn/yxsz/index.html

6.服务器www.tsinghua.edu.cn给出响应,把index.html发送给浏览器

7.TCP连接被释放

8.浏览器显示index.html中的所有文本

HTTP是一个面向事务的客户服务器协议。虽然使用了TCP,但是HTTP1.0是无状态的。也就是说同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时相同,因为服务器不记得曾经访问过的客户,也不记得访问过多少次。

(4)代理服务器的概念

代理服务器是一种网络实体,它能代表浏览器发出HTTP请求。有时代理服务器也被称为万维网高速缓存(Web cache)。代理服务器将最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按照URL再次去因特网上访问该资源。代理服务器可在客户端和服务器或者中间系统上工作。

(5)HTTP的报文结构——请求报文和响应报文

HTTP是面向文本的,在报文中的每个字段都是ASCII码串,每个字段的长度都是不确定的。

三部分

1.开始行——用于区分请求报文还是响应报文。分别叫做请求行和状态行

2.首部行——用于说明浏览器服务器或者报文主体的一些信息。

3.实体主体——请求报文中一般不用,响应报文中,有些不用

请求报文中的请求行,有方法、请求资源的URL、HTTP版本。

          方法就是对所请求对象进行的操作,比如GET,HEAD,DELETE等。

响应报文中的状态行,有HTTP版本、状态码、解释状态码的简单语句

          状态码都是三位数字,有5大类。

1xx表示通知信息,如请求收到获正在处理。

2xx表示成功,如接受。HTTP/1.1 202 Accepted

3xx表示重定向,表示要完成请求还必须采取进一步的行动。 HTTP/1.1 301 Moved Permanently

4xx表示客户差错,如请求中有错误或不能完成。HTTP/1.1 404 Not found

5xx表示服务器的差错,如服务器失效无法完成请求。

原文地址:https://www.cnblogs.com/mini-coconut/p/9178404.html