美文网首页Andorid的好东西今日看点程序员
Android 网络框架_网络框架的核心Http协议

Android 网络框架_网络框架的核心Http协议

作者: GitHubClub | 来源:发表于2016-11-07 01:03 被阅读1512次

    要写一个优秀的网络框架,当然少不了对 Http 协议的了解,因为Http协议是网络请求的核心。


    一、Http协议的简介

    1.什么是Http协议呢?

    这是直接网上搜索出来的结果:超文本传输协议(HTTP,HyperText Transfer Protocol) 是互联网上应用最为广泛的一种网络协议。所有的 WWW 文件都必须遵守这个标准。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。

    说白了,http 协议就算是超文本传输协议

    2.Http的版本

    Http 版本

    目前(2016年11月6日23:33:31)基本都是使用 1.1 协议的,2.0 协议还没有普及,不过阿里好像已经开始使用 2.0 协议了。

    其实在 Http2.0 出现之前,Google 就推出过 SPDY ,SPDY 用以最小化网络延迟,提升网络速度,优化用户的网络使用体验。SPDY 并不是一种用于替代 HTTP 的协议,而是对 HTTP 协议的增强。新协议的功能包括数据流的多路复用、请求优先级以及 HTTP 报头压缩。谷歌表示,引入 SPDY 协议后,在实验室测试中页面加载速度比原先快 64%。可是现在(2016年11月6日23:38:01) 现在 Google 已经不再维护 SPDY 了,因为 Http2.0 基本都包含了 SPDY 的功能,且 SPDY 的开发者也加入到了Http2.0 的 维护开发中。

    那么 Http2.0 跟 Http1.1 的区别是什么呢?

    要想知道 2.0 和 1.1 的区别,当然最好的方式是先了解 2.0 版本新增了哪些功能。

    看上面的Http版本图就知道,Http2.0 的一个核心功能就是:多路复用

    http2.0 能对网络效率有较大提升,其中一个原因就是使用了多路复用

    (1)多路复用

    我们先来看看http1.1中多请求的处理方式:

    http1.1中多请求的处理方式

    可以看到,要么是串行,一个请求完成后再发另一个请求,要么是可以并发,但请求结果的返回过程必须是顺序的,第一个响应完成后,才能响应第二个,即使第二个先处理完成,也要等待第一个,就产生了阻塞

    那么 Http2.0 多请求是怎样处理的呢?

    http2.0 的多请求处理方式

    只要有了请求结果数据,可以立即返回,不关心顺序问题,因为数据都被组装成了一个个的frame帧,frame中记录了自己所属数据流的ID,客户端把frame都接收到以后,根据数据流ID再进行组装即可

    (2)服务器推送流

    我们都知道,现在(2016年11月6日23:54:37)我们可以给服务器推送信息,可是服务器是不可以给客户端主动推送信息的,在 2.0 添加的一个核心功能就是服务器推送流。

    服务器推送流(Server Push)服务端能够更快的把资源推送给客户端,例如服务端可以主动把 JS 和 CSS 文件推送给客户端,而不需要客户端解析 HTML 再发送这些请求,当客户端需要的时候,它已经在客户端了

    3.Http的几种请求方式

    Http的几种请求方式

    目前就我个人而言,就使用过 get 和 post 请求,其他的请求方式基本没有使用过

    get 请求方式和 post 请求有什么区别呢?

    post、get 请求对比

    二、Http 实操详解

    1.在浏览器中查看请求信息

    浏览器开发者模式

    然后点击对应的请求,可以查看详细的请求信息

    查看请求头

    这对我们实际开发是很有用处的,其中最重要的是看请求头和响应信息。


    三、常见的请求头和响应头

    1.常见的请求头

    Http 请求头

    2.常见的响应头

    Http 响应头

    3.常见的响应码

    Http 响应码

    上面只是简单的列举了一部分的请求头和响应头,完整的请求头和响应头可以看这个网址:http://tools.jb51.net/table/http_header


    欢迎转载,转载请标明来源:

    CSDN主页:http://blog.csdn.net/two_water
    简书主页:http://www.jianshu.com/users/8ec863a03f4f/latest_articles


    相关文章

      网友评论

      本文标题:Android 网络框架_网络框架的核心Http协议

      本文链接:https://www.haomeiwen.com/subject/tzwnuttx.html