HTTP定义:HTTP是超文本传输协议,是用于传输诸如HTML的超媒体文档的应用层协议,它被设计用于Web浏览器和Web服务器之间的通信。
用户代理: HTTP是一个client-server协议,通常通过一个实体发出,实体也就是用户代理。大多数情况下,这个用户代理都是指浏览器,它也可能是一个爬取网页生成维护搜索引擎索引的机器爬虫。
Web服务器: 提供客户端请求的文档。Server只是虚拟意义上代表一个机器:它可以是共享负载(负载均衡)的一组服务器组成的计算机集群,也可以是一种复杂的软件,通过向其他计算机(如缓存,数据库服务器,电子商务服务机器...)发起请求来获取部分或者全部资源。
每一个发送到服务器的请求,都会被服务器处理并返回一个消息,也就是response。这请求与相应之间,还有许多被称为代理(proxies)的实体,他们的作用与表现各不相同,比如有些是网关,还有些是caches等
Server不一定是一台机器,但一个机器上可以装载众多Servers。在HTTP/1.1和Host头部中,它们甚至可以共享同一个IP地址。
代理(Proxies)服务器:在浏览器和服务器之间,有许多计算机和其他设备转发了HTTP消息。这种叫代理服务器 代理服务器作用如下: (1)缓存(可以是公开的也可以是私有的,像浏览器的缓存) (2)过滤(像反病毒扫描) (3)负载均衡(让多个服务器服务不同的请求) (4)认证(多不同资源进行权限管理) (5)日志记录(允许存储历史信息)
HTTP的基本性质 (1)Http是简单的 (2)HTTP是可扩展的 (3)HTTP是无状态的,有会话的,在同一个连接中,2个执行成功的请求之间是没有联系的,用Cookies可以创建有状态的会话
HTTP能控制什么? (1)缓存 文档如何缓存能通过HTTP来控制。服务端能告诉代理和客户端哪些文档需要被缓存,缓存多久,而客户端也能够命令中间的缓存代理来忽略存储的文档 (2)开放同源限制 为了防止网络窥听和其它隐私泄露,浏览器强制对Web网站做了分隔限制。只有来自相同来源的网页才能够获取网站的全部信息。这样的限制有时候反而成了负担,HTTP可以通过修改头部来开放这样的限制 (3)认证 一些页面能够被保护起来,仅让特定的用户进行访问。基本的认证功能可以直接通过HTTP提供,使用Authenticate相似的头部即可,或用HTTP Cookies 来设置指定的会话。 (4)代理和隧道 通常情况下,服务器或客户端是处于内网的,对外网隐藏真实的IP地址。因此HTTP请求就要通过代理越过这个网络屏障, (5)会话 使用HTTP Cookies允许你用一个服务端的状态发起请求,这就创建了会话。虽然基本的HTTP是无状态协议。这很有用,不仅是因为这能应用到像购物车这样的电商业务上,更是因为这使得任何网站都能轻松为用户定制展示内容了。
要展现一个网页(一个网页就是一个超文本文档),浏览器首先发送一个请求来获取页面的HTML文档,再解析文档中的资源信息发送其他请求,获取可执行脚本或css样式来进行页面布局渲染,以及一些其它页面资源(如图片和视频等)。然后,浏览器将这些资源整合在一起,展现出一个完整的文档,也就是一个网页。
(adsbygoogle = window.adsbygoogle || []).push({});