Http协议概述

1.http的通信
HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有接收到请求之前不会发送响应。
和http关系密切的协议:ip , tcp , dns
ip协议:位于网络层,负责连接到目标地址;
tcp协议:位于传输层,负责确保数据能够到达目标(三次握手及其他手段);
dns协议:负责解析域名(通过域名找到ip地址);
2.http是不保存状态的协议
http协议对于发送过的请求或响应都不做持久化的处理。这是为了更快地处理大量的事务,可是随着web的发展,不保存状态已经过时。http引入Cookie技术保持状态。

3.告知服务器意图的http方法
GET:获取资源
POST:传输实体主体
PUT:传输文件
HEAD:获得报文首部
DELETE:删除文件
OPTIONS:询问支持的方法
TRACE:追踪路径
CONNECT:要求用隧道协议链接代理

4.持久连接节省通信量

长连接:

客户端和服务器之间用于传输HTTP数据的 TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接;
HTTP/1.0中,默认使用的是短连接;
HTTP/1.1起,默认使用长连接;
使用长连接的HTTP协议,会在响应头有加入这行代码:

Connection:keep-alive 

Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间

移动端如何稳定的维持长连接是一件复杂的事情,客户端通过定时发送心跳信号(Heartbeat)以维持与服务端的长连接,但是,如果心跳的频率太频繁,移动设备耗电增加,心跳间隔太久又可能使得连接被断开。并且普遍认为移动设备处于一个多变的网络环境中,WIFI,2G,4G切换,基站切换都会引起网络变动,在不同网络环境下的心跳频率,与网络变动的重连动作,都需要大量的数据统计分析总结出来。

这仅仅是客户端的难题,在如今移动应用动辄成百上千的用户量的情况下,如何维护如此多的长连接,如果应对大规模的消息下发以及后续针对下发消息的各种统计动作都是技术难点。

管线化

持久连接使得多数请求以管线化方式发送成为可能。 以前发送请求是同步行为,一个请求收到响应,再发送下一个;管线化同时并行发送多个请求。

5.http编码

内容编码:

在http协议中,可以对内容(也就是body部分)进行编码, 可以采用gzip这样的编码。 从而达到压缩的目的。 也可以使用其他的编码把内容搅乱或加密,以此来防止未授权的第三方看到文档的内容。HTTP压缩,其实就是HTTP内容编码的一种。

http压缩:

HTTP压缩是指: Web服务器和浏览器之间压缩传输的”文本内容“的方法。 HTTP采用通用的压缩算法,比如gzip来压缩html,javascript, CSS文件。 能大大减少网络传输的数据量,提高了用户显示网页的速度。当然,同时会增加一点点服务器的开销。

分块传输编码:

超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由应用服务器发送给客户端应用( 通常是网页浏览器)的数据可以分成多个部分。分块传输编码只在HTTP协议1.1版本(HTTP/1.1)中提供。

6.内容协商: 同一个web网站可能存在着多份内容相同的页面,比如中文版和英文版的web页面。内容协商机制是指客户端和服务端就响应的资源内容进行交涉,然后提供给客户端最合适的资源。内容协商会以响应资源的语言,字符集,编码方式等作为判断的基准。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值