摘要:浏览器负责发送请求,并进一步解析返回的信息,以向用户提供明确的响应。所以是依赖于面向连接进行消息传递,但是连接不是必须的。客户端和服务器连接要保存一段时间支持代理连接还提供了与身份认证状态管理和缓存等机制相关的请求头和响应头。
一、概述
1、什么是HTTP
HTTP是一种可以获取HTML这样的网络资源的一种通讯协议protocol。是在WEB上进行数据交换的基础,是一种客户端--服务器协议。HTTP是一种可扩展的应用层协议,通过TCP或者TLS-加密的TCP连接来发送。
2、基于HTTP的组件系统
HTTP是一种client-server协议:请求通过一个实体被发出,实体也就是用户代理(大部分指的是浏览器,也可以是一个爬取网页生成维护机器索引的机器爬虫)
如图:client--->proxy---->protoxy--->server
client<---proxy<---protoxy<---server
在用户发起服务器请求时,会被服务器处理,并返回一个消息---response
实际上。在一个浏览器和处理请求的服务器间,还有路由器、调制解调器。由于web开发基于web的层次设计。那些在网络层和传输层的细节都被隐藏了。HTTP位于最上册的应用层。虽然底层很重要,但对前端来说,底层的大多数和HTTP无关
3、客户端:
user-agent 就是能够为用户发起的为的工具。浏览器总是作为发起一个请求的实体,永远不是服务器。要展现一个网页,浏览器首先发送一个请求来获取页面的HTML文档,再解析文档中的资源信息发送其他请求,获取可执行脚本或CSS样式来进行页面布局渲染,以及一些其它页面资源(如图片和视频等)。然后,浏览器将这些资源整合到一起,展现出一个完整的文档,也就是网页。浏览器执行的脚本可以在之后的阶段获取更多资源,并相应地更新网页。
浏览器负责发送HTTP请求,并进一步解析HTTP返回的信息,以向用户提供明确的响应。
4、Web服务端
在客户端通信过程的另一端,是有Web Server来服务并提供客户端所请求的文档。
5、代理(Proxies)
在浏览器和服务器之间,很多设备转发了HTTP消息,由于Web栈层次结构的原因,T它们大多出现在传输层、网络层和物理层上,对于HTTP应用层而言就是透明的,还有一部分是表现在应用层上的,被称为代理(Proxies).代理既可以表现的透明,也可以表现的不透明(“改变请求”不会通过他们)。
代理的作用:缓存、过滤、家长控制、负载均衡、认证、日志记录
二、HTTP的基本性质
HTTP是简单的、可扩展的、无状态可会话的、连接。
注解:在互联网中,最常用的传输层协议:TCP是可靠的、UDP不是。所以HTTP是依赖于面向连接TCP进行消息传递,但是连接不是必须的。
HTTP/1.0为每个请求/响应都打开一个TCP连接,这就导致了2个缺点:打开一个TCP连接需要多次往返消息传递,因此速度慢,如果多个消息周期性发送时,这样就会变得更加高效:暖连接比冷连接更高效。
HTTP/1.1引入了流水线和持久连接:底层的TCP连接可以通过Connection头部来被控制。HTTP/2.0则是通过在一个连接复用消息的方式来让这个链接始终为暖连接
三、HTTP特性
缓存:服务器端告诉代理和客户端哪些文档需要缓存,缓存多久,而客户端也可以命令中间的缓存代理来忽略存储的文档。
开放同源限制:为防止网络窃听和其他隐私的泄露,浏览器强制对Web网站做了分割限制,只有来源相同的网页才可以获取网站的全部信息
认证:基本的认证可以直接通过HTTP提供,使用Authenticate相似的头部即可,或使用HTTP Cookies来设置指定的对话
代理和隧道:通常情况下,服务器/客户端是处于内网的,对外网是隐藏自己真实的IP的,因此HTTP请求就是要通过代理越过这个网络屏障,但是并非所有的代理都是HTTP代理.
会话:使用HTTP Cookies允许你用一个服务器端的状态发起请求,就创建了会话。
三、HTTP流---客户端和服务器交互过程
打开一个TCP连接---->发送一个HTTP报文--->读取服务器端返回的报文信息--->关闭连接或为后续的请求重用连接 HTTP流水线已被HTTP/2的帧替代
四、HTTP报文
1、有两种HTTP报文类型:请求与回应
请求:
回应:
HTTP/1.0与HTTP/1.1的区别
1、支持虚拟主机技术,在一个WEB服务器上同时并存多个域名网站;
2、支持持久化连接:三次握手、四次挥手。客户端和服务器连接要保存一段时间Conection:Keep-alive
3、支持代理连接
4、HTTP 1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头。
用户在浏览器中输入www.baidu.com直到看到页面之间发生了什么?
①操作系统访问DNS服务器,把域名转换为IP地址
②浏览器发起HTTP请求
③找到指定资源,可能访问数据库,构建并返回HTTP响应消息
④浏览器接收并解析消息
⑤浏览器缓存接收响应的内容,解析并渲染相应内容
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/113792.html
摘要:浏览器负责发送请求,并进一步解析返回的信息,以向用户提供明确的响应。所以是依赖于面向连接进行消息传递,但是连接不是必须的。客户端和服务器连接要保存一段时间支持代理连接还提供了与身份认证状态管理和缓存等机制相关的请求头和响应头。 一、概述 1、什么是HTTP HTTP是一种可以获取HTML这样的网络资源的一种通讯协议protocol。是在WEB上进行数据交换的基础,是一种客户端--服务器...
摘要:浏览器负责发送请求,并进一步解析返回的信息,以向用户提供明确的响应。所以是依赖于面向连接进行消息传递,但是连接不是必须的。客户端和服务器连接要保存一段时间支持代理连接还提供了与身份认证状态管理和缓存等机制相关的请求头和响应头。 一、概述 1、什么是HTTP HTTP是一种可以获取HTML这样的网络资源的一种通讯协议protocol。是在WEB上进行数据交换的基础,是一种客户端--服务器...
近来正在回顾PHP的文件上传。在此做个记录。 文件上传作业 table{border:0;cellspacing: 0;cellpadding:0} table tr td{text-align: center;height: 25px;line-height: 25px;width: 200px; border: 1px sol...
阅读 1058·2021-11-24 09:39
阅读 1290·2021-11-18 13:18
阅读 2382·2021-11-15 11:38
阅读 1802·2021-09-26 09:47
阅读 1592·2021-09-22 15:09
阅读 1609·2021-09-03 10:29
阅读 1470·2019-08-29 17:28
阅读 2939·2019-08-29 16:30