一.HTTP 1.0,1.1,2.0之间的区别
http协议是一种构建在TCP协议之上的应用层协议,也是一个简单的请求-响应协议,主要是用途客户端和服务端的沟通.
1.http1.0与http1.1之间的区别
在缓存策略方面,http1.0的缓存策略主要是依赖header中的If-Modiified-Since,Expire,而http1.1的缓存策略要比http1.0更多,其引入了更多的缓存控制策略像Entity tag,If-Unmodified-Since, If-Match, If-None-Match等。
在网络连接与宽带方面,http1.1采用长连接的方式,使用connection:keep-alive进行长连接,其在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。而http1.0采用短连接的方式,每次发送请求都要重新建立tcp请求,即三次握手,与http1.1相比非常浪费性能。所以http1.1更节约带宽。
在host域方面,http1.0没有host域,其默认每台服务器都绑定唯一的一个IP地址,所以请求消息中url并没有传递主机名,也就是hostname.而http1.1都具有host域,支持断点传输功能,并且在请求消息中如果没有host域会发生报错。
2.http2.0与http1.x之间的区别
http1.x的解析是基于文本协议的各式解析,而http2.0的协议解析是二进制格式,所以功能更加的强大
http2.0使用了多路复用的技术,在一个连接上可以有多个request,且可以随机的混在一起,每个不同的request都有对应的id,服务端可以通过request_id来辨别,大大加快了传输速率,同时做到同一个连接并发处理多个请求,而且并发请求的数量比http1.x大了好几个数量级,优势明显。
在服务推送方面,http2.0引入服务器推送,允许服务端推送资源给客户端,服务器会顺便把一些客户端需要的资源一起推送到客户端,如在响应一个页面请求中,就可以随同页面的其它资源,免得客户端再次创建连接发送请求到服务器端获取,所以这种方式非常合适加载静态资源,而http1.x则不具备这些功能。
二.编码与字符集的意义
1.字符编码是把字符集中的字符编码为特定的二进制数,以便在计算机中存储。每个字符集中的字符都对应一个唯一的二进制编码。
2.字符集是多个字符的集合。例如GB2312是中国国家标准的简体中文字符集,GB2312收录简化汉字(6763个)及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。字符集通常以二维表的形式存在,二维表的内容和大小是由使用者的语言而定。如ASCII,GBxxx,Unicode等。
3.字符集和字符编码的关系 :
字符集是书写系统字母与符号的集合,而字符编码则是将字符映射为一特定的字节或字节序列,是一种规则。通常特定的字符集采用特定的编码方式(即一种字符集对应一种字符编码(例如:ASCII、IOS-8859-1、GB2312、GBK,都是即表示了字符集又表示了对应的字符编码,但Unicode不是,它采用现代的模型)),因此基本上可以将两者视为同义词。
三.UTF-8的意义简述
UTF-8是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部分修改后,便可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。
四.web 开发的本质:请求 — 处理 — 响应
不同的 web 客户端,根据不同的需求发送请求到服务器上部署的 web 系统上,web 系统根据需求返回相应的结果,最后,通过 web 客户端展现给用户。用户在浏览器地址栏中输入网址,浏览器通过用户在地址栏中输入的 URL,构建 HTTP 请求报文,浏览器发起 DNS 解析请求,将域名转换为 IP 地址,之后浏览器将请求报文发送给服务器,服务器接收请求报文并解析,同时服务器处理用户请求,并将处理结果封装成 HTTP 响应报文。服务器将 HTTP 响应报文发送给浏览器,浏览器接收服务器响应的 HTTP 报文并解析,浏览器解析 HTML 页面并渲染,在解析 HTML 页面时遇到新的资源需要时再次发起请求。最终,浏览器渲染出了此页面。