Skip to main content
 首页 » 操作系统 » linux系统

Android网络编程-HTTP/HTTPS

工作原理,如图所示:

Android网络编程-HTTP/HTTPS  Android编程 第1张

C/S架构

报文分为请求报文和响应报文。

请求报文

Android网络编程-HTTP/HTTPS  Android编程 第2张

请求报文

个部分组成:

请求行:请求类型,要访问的资源以及所使用的,协议版本。

请求方法

Android网络编程-HTTP/HTTPS  Android编程 第3张

请求URLURL(Uniform Resource Locator)统一资源定位符,表示资源的地点(互联网上的地址)。URI(Uniform Resource Identifier)统一资源标识符,用字符串标识某一互联网资源,URL是URI的子集。

协议版本种类型的首部字段:通用首部字段、请求首部字段、响应首部字段和实体首部字段,所有完整首部这里我们先了解下常用的请求首部。

Android网络编程-HTTP/HTTPS  Android编程 第4张

请求包体请求包体不在 GET 方法中使用,而是在POST 方法中使用。HTTP请求的请求体有三种不同的形式:

任意类型:服务器不会解析请求体,请求体的处理需要自己解析,比如JSON键值对(application/x-来查看

POST /getconfig 声明为键值对响应报文

Android网络编程-HTTP/HTTPS  Android编程 第5张

响应报文

个部分组成。

状态行状态行由 个部分组成,他们之间使用空格隔开;协议版本和请求中的对应,状态码和描述会一一对应。

状态码、描述状态码由三位数字组成,第一位数字表示响应的类型,常用的状态码有五大类:

1xx:Informational(信息性状态码),接收的请求正在处理;2xx:Success(成功状态码),请求正常处理完毕;3xx:Redirection(重定向状态码),需要进行附加操作以完成请求;4xx:Client Error(客户端错误状态码),服务器无法处理请求;5xx:Server Error(服务器错误状态码),服务器处理请求出错;常用的一些状态码和描述

1xx状态码、描述说明100 Continue表明到目前为止都很正常,客户端可以继续发送请求或者忽略这个响应

2xx状态码、描述说明200 OK请求成功204 No Content请求已经成功处理,但是返回的响应报文不包含实体的主体部分206 Partial Content表示客户端进行了范围请求,<br>响应报文包含由Content-Range指定范围的实体内容

3xx状态码、描述说明301 Moved Permanently永久性重定向302 Found临时性重定向304 Not Modified如果请求报文首部包含一些条件,If-Match,If-Range, <br/>If-Modified-Since,If-None-Match,,If-Unmodified-Since。<br/>如果不满足条件,则服务器会返回 304 状态码307 Temporary Redirect临时重定向,与 302 的含义类似,<br/>但是307要求浏览器不会把重定向请求的POST方法改成GET方法

4xx状态码、描述说明400 Bad Request请求报文中存在语法错误401 Unauthorized请求需要验证用户403 Forbidden访问权限问题404 Not Found

5xx状态码、描述说明500 Internal Server Error服务器正在执行请求时发生错误503 Service Unavailable服务器正在执行请求时发生错误

响应头部和请求头部一样,由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。常用的请求首部

字段说明Cache-Control控制缓存的行为Connection控制不再转发给代理的首部字段、管理持久连接Transfer-Encoding指定报文主体的传输编码方式Content-Encoding实体主体适用的编码方式Content-Type实体主体的媒体类型Content-Length实体主体的大小Expires实体主体过期的日期时间ETag资源的匹配信息,和If-Nome-Match对应Date服务端创建报文的日期时间Location令客户端重定向至指定 URIServer 内容保存到浏览器中

其他更详细的首部信息,可以参考这里

响应包体服务器返回给客户端的文本信息。和请求包体的分类一样。

示例 有以下安全性问题:

使用明文进行通信,内容可能会被窃听;不验证通信方的身份,通信方的身份有可能遭遇伪装;无法证明报文的完整性,报文有可能遭篡改。 具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)

Android网络编程-HTTP/HTTPS  Android编程 第6张

缺点因为需要进行加密解密等过程,因此速度会更慢;需要支付证书授权的高额费用。。

OK的源码中。

RetrofitRetrofit是Square公司出品的默认基于OK 网络请求框架

后续文章会从OK。

参考 协议入门

评论列表暂无评论
发表评论
微信