HTTP宏观表现
客户端通过http格式的URI请求服务器获取资源,并表现在屏幕上。这个过程就是简单的HTTP请求过程,也称做一个事务。同时这个HTTP连接是可靠的,信息传输过程中不会混乱和信息丢失。
特点:无差错,按序,未分段大小尺寸任意传输
客户端与服务端交互的具体表现
1.分析客户端请求的URI,得出服务器ip地址,端口号后与服务器建立链接
2.客户端和服务器实际才有纯文本格式的报文来相互沟通。建立链接后获取URI相应的资源地址,对服务器发起请求报文。
3.服务器分析报文,返回响应报文(资源)给客户端
4.客户端分析响应报文,获取对应资源并显示。
ps:事实上一个复杂的页面请求可能会同时请求多个服务器(如果需要的资源存在不同的服务器),因此会同时建立多个HTTP链接
专业名词说明
URI
称为统一资源标识符,作用就是指定某服务器(ip地址端口之类的)某资源。其中URI分为两种形式:URL和URN
URL
又称为统一资源定位符,可以精确的说明一个资源的位置(ip地址和端口)以及如何去访问这个资源。说白了就是个资源地址如
www.baidu.com/index.html
举个列子我们平时去访问百度直接就www.baidu.com了,其实默认下后面是跟个index.html的。意思就是要找到www.baidu.com地址服务器的主目录下index.html文件。
有人就问了,不是说要ip地址和端口吗?为啥百度地址是一串字母,为了便于记忆我们把ip地址映射成了容易记住有语法规则的东西。所以实际上我们会使用一个叫做DNS域名解析的技术,将www.baidu.com转译成ip地址,如果没有端口一般默认80。
URN
又称为统一资源协议,可以通过网络一个文件的“特定名称”来寻找资源。这样即便原资源搬离了服务器,也能自动找到新服务器的地址,而URL因写死了ip地址所以可能会丢失资源。
ps:一般现在都用URL,URN还处于实验阶段
事务&报文
客户端请求服务器,服务器发送资源给客户端,这个一来一去的过程,就称事务,而服务端和客户端交流的中介就是报文。两者通过纯文本格式一定规则下的报文相互交流。
HTTP报文结构
由以下三个部分组成:
起始行:说明协议版本,状态码,方法等
首部字段:报文的概要信息,包括时间,主体内容长度等
主体:发给web服务器的主要信息/服务器返回的主要信息
方法
存在于请求报文起始行中,诸如GET,PUT,DELETE方法,实质上就是告诉服务器应执行怎样的命令。
状态码
存在响应报文的起始行中,大家经常见到的404(无法找到响应资源)便是其中一种,还有200成功等等。一般而言,状态码后面会跟着一个小短语,200 OK , 400 NOT FOUND什么的。
web的结构组件
代理
如此熟悉的名字,想必有很多人都知道他的用处了(滑稽)其实代理位于客户端和服务器之中,对原请求报文/响应报文进行转发,当然途中也可能会过滤有害的响应报文然后再给客户端,也可能会修改请求报文,再转发给目标服务器。我们的梯子就是通过可访问的外网服务器作为代理,让其转发报文,这样就可以假装自己是在墙外了(嘿嘿嘿)。
当然了,这种代理只是其中一种,也可作为缓存代理,帮客户端缓存经常访问的页面,以提高客户端的访问速度。
网关
通常用来转换协议,如用户使用HTTP协议来访问FTP协议的资源,中间就经过网关,将HTTP报文包装成FTP协议,来达到访问FTP协议服务器的目的。
隧道
通常用来在一条或多条HTTP连接上转发非HTTP协议的数据。如加密数据SSL,把SSL套在HTTP上,通过隧道后再将解开还原为SSL,最终以SSL的方式呈现在服务器。
以上内容来自HTTP权威指南内容的第一章概括
网友评论