美文网首页我爱编程
网络编程系列第(二)篇---http/https

网络编程系列第(二)篇---http/https

作者: sofarsogoo_932d | 来源:发表于2018-03-27 14:00 被阅读0次

    1. http协议介绍

    http,中文名:超文本传输协议。它是一个基于客户端/服务器模式的应用层协议,客户端主动发送http请求,服务端接收请求,并返回给客户端一个http响应结果。http协议严格规定了请求和响应的数据格式,只要客户端和服务端都遵守http协议,就能看懂对方发送的信息。

    http协议主要特点如下:

    • 默认端口号:80
    • 支持客户/服务器模式
    • 简单快速:客户向服务端请求服务时,只需传送请求方式和路径。
    • 灵活:允许传输任意类型的数据对象。由Content-Type加以标记。
    • 无连接:每次响应一个请求,响应完成以后就断开连接。
    • 无状态:服务器不保存浏览器的任何信息。每次提交的请求之间没有关联

    关于无连接需要说明一下

    这里的连接指的的是TCP的连接,然而从http/1.0开始,持久性连接被提了出来,通过设置Connection:keep-alive(需要客户端和服务端都设置这个值),使客户端到服务器端的连接持续有效(这个有效时间服务端可以设置)。

    http 1.0中默认是关闭的,需要在http头加入"Connection: Keep-Alive",才能启用Keep-Alive;http 1.1中默认启用Keep-Alive,如果加入"Connection: close ",才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep- Alive连接就看服务器设置情况。

    2. http请求格式

    http请求格式.jpg

    http请求由三部分组成

    • 请求行,请求方法:get/post等;请求地址:url;请求协议:http/1.1
    • 请求头,描述了客户端相关信息
    • 请求体,post方式提交的表单数据

    3. http响应格式

    http响应格式.jpg

    http响应由三部分组成

    • 响应行,响应协议:http/1.1;响应码:200;响应描述:OK
    • 响应头,描述服务端相关信息
    • 响应体,html或者json格式的数据

    4. http请求响应的整个过程

    我们直接借用一幅图来描述


    http请求响应过程.png

    对于安卓来说,安卓客户端就充当了图中浏览器的角色

    5. https

    http+ssl=https,即是由ssl+http协议构建的可进行加密传输、身份认证的网络协议,默认端口号443

    ssl证书包括

    • 由安卓认可的证书颁发机构颁发的证书(默认被信任,不会出现安全提示)
    • 非安卓认可机构颁发的证书
    • 自签名的证书

    在okhttp中,第一种证书,框架已经帮我们做了校验,后两种,需要我们自己在代码中添加对证书的信任,否则会报错。

    相关文章

      网友评论

        本文标题:网络编程系列第(二)篇---http/https

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