http相关知识点回顾

1、概述前端

一、什么是HTTPweb

HTTP是一种能够获取HTML这样的网络资源的一种通信协议protocol。是在WEB上进行数据交换的基础,是一种客户端--服务器协议。HTTP是一种可扩展的应用层协议,经过TCP或者TLS-加密的TCP链接来发送。数据库

二、基于HTTP的组件系统浏览器

HTTP是一种client-server协议:请求经过一个实体被发出,实体也就是用户代理(大部分指的是浏览器,也能够是一个爬取网页生成维护机器索引的机器爬虫)缓存

如图:client--->proxy---->protoxy--->server服务器

   client<---proxy<---protoxy<---server网络

在用户发起服务器请求时,会被服务器处理,并返回一个消息---response负载均衡

实际上。在一个浏览器和处理请求的服务器间,还有路由器、调制解调器。因为web开发基于web的层次设计。那些在网络层和传输层的细节都被隐藏了。HTTP位于最上册的应用层。虽然底层很重要,但对前端来讲,底层的大多数和HTTP无关工具

三、客户端:布局

user-agent 就是可以为用户发起的为的工具。浏览器老是做为发起一个请求的实体,永远不是服务器。要展示一个网页,浏览器首先发送一个请求来获取页面的HTML文档,再解析文档中的资源信息发送其余请求,获取可执行脚本或CSS样式来进行页面布局渲染,以及一些其它页面资源(如图片和视频等)。而后,浏览器将这些资源整合到一块儿,展示出一个完整的文档,也就是网页。浏览器执行的脚本能够在以后的阶段获取更多资源,并相应地更新网页。

  浏览器负责发送HTTP请求,并进一步解析HTTP返回的信息,以向用户提供明确的响应。

四、Web服务端

  在客户端通讯过程的另外一端,是有Web Server来服务并提供客户端所请求的文档。

五、代理(Proxies)

  在浏览器和服务器之间,不少设备转发了HTTP消息,因为Web栈层次结构的缘由,T它们大多出如今传输层、网络层和物理层上,对于HTTP应用层而言就是透明的,还有一部分是表如今应用层上的,被称为代理(Proxies).代理既能够表现的透明,也能够表现的不透明(“改变请求”不会经过他们)。

  代理的做用:缓存、过滤、家长控制、负载均衡、认证、日志记录

2、HTTP的基本性质

  HTTP是简单的、可扩展的、无状态可会话的、链接。

  注解:在互联网中,最经常使用的传输层协议:TCP是可靠的、UDP不是。因此HTTP是依赖于面向链接TCP进行消息传递,可是链接不是必须的。

     HTTP/1.0为每一个请求/响应都打开一个TCP链接,这就致使了2个缺点:打开一个TCP链接须要屡次往返消息传递,所以速度慢,若是多个消息周期性发送时,这样就会变得更加高效:暖链接比冷链接更高效。

  HTTP/1.1引入了流水线和持久链接:底层的TCP链接能够经过Connection头部来被控制。HTTP/2.0则是经过在一个链接复用消息的方式来让这个连接始终为暖链接

3、HTTP特性

缓存:服务器端告诉代理和客户端哪些文档须要缓存,缓存多久,而客户端也能够命令中间的缓存代理来忽略存储的文档。

   开放同源限制:为防止网络窃听和其余隐私的泄露,浏览器强制对Web网站作了分割限制,只有来源相同的网页才能够获取网站的所有信息

   认证:基本的认证能够直接经过HTTP提供,使用Authenticate类似的头部便可,或使用HTTP Cookies来设置指定的对话

  代理和隧道:一般状况下,服务器/客户端是处于内网的,对外网是隐藏本身真实的IP的,所以HTTP请求就是要经过代理越过这个网络屏障,可是并不是全部的代理都是HTTP代理.

   会话:使用HTTP Cookies容许你用一个服务器端的状态发起请求,就建立了会话。

3、HTTP流---客户端和服务器交互过程

打开一个TCP链接---->发送一个HTTP报文--->读取服务器端返回的报文信息--->关闭链接或为后续的请求重用链接

HTTP流水线已被HTTP/2的帧替代

4、HTTP报文

  一、有两种HTTP报文类型:请求与回应

请求:

图片描述

图片描述

   回应:

图片描述

HTTP/1.0与HTTP/1.1的区别

一、支持虚拟主机技术,在一个WEB服务器上同时并存多个域名网站;

二、支持持久化链接:三次握手、四次挥手。客户端和服务器链接要保存一段时间Conection:Keep-alive

三、支持代理链接

四、HTTP 1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头。

用户在浏览器中输入www.baidu.com直到看到页面之间发生了什么?

①操做系统访问DNS服务器,把域名转换为IP地址

②浏览器发起HTTP请求

③找到指定资源,可能访问数据库,构建并返回HTTP响应消息

④浏览器接收并解析消息

⑤浏览器缓存接收响应的内容,解析并渲染相应内容

相关文章
相关标签/搜索