您好!欢迎访问加拿大pc官网!
专注精密制造10载以上
专业点胶阀喷嘴,撞针,精密机械零件加工厂家
联系方式
021-80531745
您当前的位置: 主页 > 新闻动态 > 常见问题 >

常见问题

Android网络编程-HTTP/HTTPS

更新时间  2022-11-14 00:09 阅读
本文摘要:HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,在TCP/IP体系中属于最高层(应用层)是用于从万维网服务器传输超文本到当地浏览器的传送协议。HTTP协议事情于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。 Web服务器凭据吸收到的请求后,向客户端发送响应信息。这是最基本的HTTP事情原理,如图所示:C/S架构HTTP报文HTTP属于应用层,应用层传输的数据单元是报文。

加拿大pc官网

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,在TCP/IP体系中属于最高层(应用层)是用于从万维网服务器传输超文本到当地浏览器的传送协议。HTTP协议事情于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

Web服务器凭据吸收到的请求后,向客户端发送响应信息。这是最基本的HTTP事情原理,如图所示:C/S架构HTTP报文HTTP属于应用层,应用层传输的数据单元是报文。HTTP报文分为请求报文和响应报文。请求报文请求报文HTTP请求报文由以下4个部门组成:请求行:请求类型,要会见的资源以及所使用的HTTP版本。

请求头部:服务器要使用的附加信息。空行:请求头部后面的空行是必须的请求包体:可以添加任意的其他数据请求行请求行组成:请求方法,请求URL,协议版本。请求方法请求URLURL(Uniform Resource Locator)统一资源定位符,表现资源的所在(互联网上的地址)。

URI(Uniform Resource Identifier)统一资源标识符,用字符串标识某一互联网资源,URL是URI的子集。协议版本HTTP/1.0:HTTP协议的第二个版本,第一个在通讯中指定版本号的HTTP协议版本,至今仍被广泛接纳HTTP/1.1:HTTP协议的第三个版本是HTTP 1.1,是现在使用最广泛的协议版本HTTP/2.0:HTTP 2.0是下一代HTTP协议,现在应用还很是少请求头部请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分开。有4种类型的首部字段:通用首部字段、请求首部字段、响应首部字段和实体首部字段,所有完整首部这里我们先相识下常用的请求首部。请求包体请求包体不在 GET 方法中使用,而是在POST 方法中使用。

HTTP请求的请求体有三种差别的形式:任意类型:服务器不会剖析请求体,请求体的处置惩罚需要自己剖析,好比JSON键值对(application/x-www-form-urlencoded):最常见的 POST 提交数据的方式,表单模式文件支解:请求体被分成为多个部门,文件上传时会被使用示例使用抓包工具或者Chrome来检察POST /getconfig HTTP/1.1Content-Type: application/x-www-form-urlencodedUser-Agent: Dalvik/2.1.0 (Linux; U; Android 9; Redmi Note 7 MIUI/V10.3.2.0.PFGCNXM)Host: data.mistat.xiaomi.comAccept-Encoding: gzipContent-Length: 205Connection: closeapp_id=1000274&app_version=10.8.3请求行:显示Post请求,协议版本为HTTP/1.1请求头部:Content-Type,User-Agent,Host,Accept-Encoding,Content-Length,Connection请求体:Content-Type声明为键值对响应报文响应报文HTTP 响应报文由状态行、响应头部、空行和响应包体4个部门组成。状态行状态行由HTTP协议版本字段、状态码和状态码的形貌文本 3 个部门组成,他们之间使用空格离隔;协议版本和请求中的对应,状态码和形貌会一一对应。状态码、形貌状态码由三位数字组成,第一位数字表现响应的类型,常用的状态码有五大类: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。

加拿大pc官网

加拿大pc官网

<br/>如果不满足条件,则服务器会返回 304 状态码307 Temporary Redirect暂时重定向,与 302 的寄义类似,<br/>可是307要求浏览器不会把重定向请求的POST方法改成GET方法4xx状态码、形貌说明400 Bad Request请求报文中存在语法错误401 Unauthorized请求需要验证用户403 Forbidden会见权限问题404 Not Found5xx状态码、形貌说明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令客户端重定向至指定 URIServerHTTP 服务器的安装信息Last-Modified资源的最后修他日期时间Set-Cookie设置Cookie,客户端获得响应报文后把 Cookie 内容生存到浏览器中其他更详细的首部信息,可以参考这里响应包体服务器返回给客户端的文本信息。和请求包体的分类一样。示例HTTP/1.1 200 OKDate: Sat, 13 Jul 2019 08:40:52 GMTContent-Type: application/json;charset=UTF-8Transfer-Encoding: chunkedContent-Encoding: gzipConnection: close{"errorCode":-2,"reason":"no changing","result":null}响应行:返回响应码200 Ok,表现服务端返回数据乐成响应头部:Content-Type设置返回的类型为JSON花样响应包体:返回详细JSON数据HTTPSHTTP 有以下宁静性问题:使用明文举行通信,内容可能会被窃听;不验证通信方的身份,通信方的身份有可能遭遇伪装;无法证明报文的完整性,报文有可能遭窜改。

HTTPS 并不是新协议,而是让 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信,也就是说 HTTPS 使用了隧道举行通信。通过使用 SSL,HTTPS 具有了加密(防窃听)、认证(防伪装)和完整性掩护(防窜改)HTTPS与HTTP区别协议原理数据花样传输速度端口HTTP应用层明文传输三次握手,传输三个包80HTTPS传输层SSL加密三次握手基础上增加ssl握手(9个包),<br>传输12个包443缺点因为需要举行加密解密等历程,因此速度会更慢;需要支付证书授权的高额用度。

HTTP框架VolleyVolley是Google 官方出的一套小而巧的异步请求库,该框架封装的扩展性很强,支持 HttpClient、HttpUrlConnection,甚至支持OKHttp。OKHttpOKHttp是Square 公司开源的针对 Java 和 Android 法式,封装的一个高性能 http 请求库,所以它的职责跟 HttpUrlConnection 是一样的,支持 spdy、http 2.0、websocket ,支持同步、异步。

已被谷歌加入到Android的源码中。RetrofitRetrofit是Square公司出品的默认基于OKHttp 封装的一套 RESTful 网络请求框架后续文章会从OKHttp、Retrofit角度来分析Http。参考Http这是一份全面& 详细 HTTP协议 学习攻略精读《图解HTTP》HTTP 协议入门。


本文关键词:加拿大pc官网,Android,网络编程,-HTTP,HTTPS,HTTP,协议,是,Hyper,Text

本文来源:加拿大pc官网-www.js-a.cn