Android HTTP网络通信

1.HTTP的理解

1.1 是一种超文本传输协议,定义了浏览器如何向万维网请求文档,以及服务器如何把文档返回给浏览器。

1.2 是面向应用层协议。

2. HTTP的工作流程

(1) 客户端与服务端进行连接(三次握手),点击某个超级链接,Http 工作开始;
(2) 建立连接后,客户端发送请求;
(3) 服务器接收到请求,给与响应信息;
(4) 客户端接收到返回的信息,通过浏览器显示出来,客户端与服务器断开连接。

3. HTTP中必不可少: URL

URL:统一资源定位符,也可以称为网页地址
URL的组成:
(1) 协议或成为服务方式(如:HTTP或HTTPS)
(2) 存有该资源的主机的 IP地址(服务器的IP地址,有时也包括端口号)
(3) 主机字眼的具体地址(如:目录或文件名)
如:http://127.0.0.1:8080/index.jsp 第一部分:http 第二部分:127.0.0.1:8080 第三部分:index.jsp
注意,第一和第二部分不可省略,并且用“:// ”隔开;第二和第三部分用 “/” 隔开,第三部分有时可以省略。

4. HTTP协议的特点:

(1) 支持客户端/服务特点
(2) 简单快速;
(3) 灵活:允许传入任意类型的数据对象
(4) 无连接:每一次请求发出到做出响应后,服务端和客户端会断开连接
(5) 无状态;每一次请求完成,对事物的处理没有记忆功能

5.网络通信功能的划分(由低到高)

OSI划分;
(1) 物理层
(2) 数据链路层
(3) 网络层
(4) 传输层
(5) 会话层
(6) 表示层
(7) 应用层
TCP/IP划分:
(1) 主机到网络层
(2) 网络层
(3) 传输层
(4) 应用层
根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接

6.Http协议的请求方法:

在Http 1.1版本中支持7种请求方法:分别是GET、POST、PUT、DELETE、OPTIONS、TARCE和HEAD
GET: 通过请求URI得到资源
POST: 用于添加新的内容
PUT: 用于修改某个内容
DELETE: 删除某个内容
OPTIONS: 询问可以执行哪些方法
TRACE: 用于远程诊断服务器
HEAD: 类似于GET, 但是不返回body信息,用于检查对象是否存在,以及得到对象的元数据

6. HTTP协议的请求报文和响应报文

请求报文由4 个部分组成:请求行(request line) 、请求头(header)、空行请求数据
(1)请求行:由请求方式 、 URL字段 、 HTTP协议版本组成
(2)请求头:由键值对表示,如get请求的请求头如下:

             Accept:xxx    表示浏览器能接受的数据类型
             Accept-Charset: xxx   浏览器可以接受的字符编码集
             Referer:xxx    先前的网页地址
             Accept-Language:xxx    浏览器接受的语言
             Accept-Encoding:xxx     浏览器接受的数据压缩格式
             User-Agent:xxx        包含发出请求的用户信息
             Host:xxx         请求的服务器的域名和端口号
             Connection:xxx     表示是否连接断开(HTTP 1.1协议默认保持长久连接)
             Cookie:xxx         浏览器通过这个值带数据给服务器

(3)空行:通知请求头结束
(4)请求数据:在POST方法中使用

响应报文由3个部分组成:状态行(status-line)、响应头(headers)和响应正文(response-body)
1)状态行:HTTP-Version(协议版本) Status-Code(响应码) Reason-Phrase CRLF(响应码的描述)
(2)响应头:

              Accept-Ranges:xxx   表名服务器是否支持指定范围请求及哪种类型的分段请求
              Content-Encoding:xxx   服务器支持的返回内容压缩的编码类型
              Content-Language:xxx   响应体的语言
              Content-Length:xxx    响应体的长度
              Content-Location:xxx   请求资源的备用地址
              Content-Type:xxx   返回内容的MIME类型
              Date:xxx    服务器消息发出的时间
              ETag:xxx    请求变量的实体标签当前值
              Location:xxx    用于告诉浏览器找谁

7. 常见的响应码

200 OK: 请求成功(其后是对GET和POST请求的应答文档。
202 Accepted: 供处理的请求已被接受,但是处理未完成。
400 Bad Request: 服务器未能理解请求。
400 Bad Request: 服务器未能理解请求。
401 Unauthorized: 被请求的页面需要用户名和密码。
402 Payment Required: 此代码尚无法使用。
403 Forbidden: 对被请求页面的访问被禁止。
404 Not Found: 服务器无法找到被请求的页面。
408 Request Timeout: 请求超出了服务器的等待时间。
409 Conflict: 由于冲突,请求无法被完成。
410 Gone: 被请求的页面不可用。
500 Internal Server Error请求未完成。服务器遇到不可预知的情况
503 Service Unavailable请求未完成。服务器临时过载或当机。
504 Gateway Timeout网关超时。

猜你喜欢

转载自blog.csdn.net/LewisWang_/article/details/52203977
今日推荐