http1.0 和 http1.1的区别
http1.0最早在网页上使用时是在1996年,那个时候只是使用一些较为简单的网页和网络请求上,http1.1是在1999年才开始广泛应用于现在的各大浏览器上,http1.1是目前使用最广泛的HTTP协议
1.长连接
http1.1支持长连接和请求的流水线(Pipelining)处理,在一个tcp连接上可以传送多个HTTP请求和响应,减小了连接创建和销毁时的消耗。HTTP1.1是默认开启Keep-Alive模式的。
2 带宽优化
http1.0中存在一些浪费带宽的情况,比如客户端只需要某个对象的一小部分,但是http1.0协议下,服务器会将整个对象传过来,因此浪费了一些带宽,而HTTP1.1在请求头中加入了range头域,它允许只请求资源的某个部分(返回码206),并且http1.0也不支持断点续传。
3.错误通知的管理
HTTP1.1加入了24个错误状态响应码,如409:请求的资源与资源当前的状态发生冲突。 410:服务器上的某个资源被永久的删除。
4.http头处理
在http1.0协议认为每台服务器绑定唯一的ip地址,因此消息的URL中并没有传递主机名,但是借助虚拟主机技术,一台物理服务器上可以存在多个虚拟主机,并且它们共享一个ip地址,所以在HTTP1.1中,HTTP1.1的请求和响应消息中则支持传递一个HOST,主机信息,没有该信息的请求消息,服务器会报告一个错误400:Bad Request。
5. 缓存处理
HTTP1.1相比HTTP1.0有了更多的缓存控制策略
https 和 http的一些区别
http是明文协议,https是加密协议(SLL加密)
http一般用的端口是80,https是443
https一般要到ca申请证书,大部分要交费
https可以有效防止运营商劫持
http的基本优化
影响http网络请求的因素主要是带宽和延迟,如今的网络环境下,带宽的影响已经变小了主要是延迟
浏览器阻塞:浏览器对同一个域名,最多4个tcp连接,有的是6个。超过浏览器最大连接数,后续请求就会被阻塞
DNS查询:浏览器必须先知道网址对应IP,可以通过DNS缓存来加速
TCP连接建立:第三次握手可以携带数据
http2.0
http2.0大幅度提高了web性能,在http1.1完全语言兼容的基础上,进一步减小了网络的延迟,实现了低延迟,高吞吐量。http2.0是基于SPDY协议
主要特性:
- 二进制传输,而非文本格式,提高了效率。
- 压缩头部:静态表和Huffman编码
- 实现了stream并发,多个Stream只需要复用一个tcp连接,完全多路复用,而非有序并阻塞的,用一个连接即可实现并行。
- 服务器主动推送资源
TCP
URI 和 URL
URI:统一资源标识符
URL:统一资源定位符
URL是URI的子集,URL是通过位子位置来确定资源的,而URI可以唯一的标识一个资源
长连接的好处
- 减小创建和销毁TCP连接的系统消耗
- 允许HTTP pipelining的请求和响应
- 减小了后续请求的响应时间
- 减小了网络的拥塞
缺点:减小了服务器的并发数
服务器通过最近最少使用来关闭掉空闲长连接
##pipelining
在等待上一个请求的同时发送下一个请求。但是接收的时候还是要按顺序接收
http状态码

- 100:continue:表明到目前为止都很正常。
- 200 OK
- 204 请求已经成功处理,但那时返回的响应报文不包含实体的主体部分,一般在客户端往服务器发送信息,而不需要返回数据时使用。
- 301永久重定向
- 302 临时重定向
- 400 请求报文中存在语法错误
- 403 请求被拒绝
- 404 NOT FOUND
- 500 服务器正在执行请求时发生错误
- 503 服务器暂时处于超负载或者正在进行停机维护,现在无法处理请求
