Android中的Http通信(一)之Http协议基本知识

来源:互联网 发布:哈萨维诺亚知乎 编辑:程序博客网 时间:2024/05/22 12:52

写了这么久的项目,几乎每个项目都用到了网络请求,不对,是所有的项目吐舌头。一直没有对这一块做过详细的总结,今天结合一些网上的资料以及自己的理解,来谈谈Http。废话不多说,直奔正题吧......

我们如果想要真正的了解Http,我们必须要知道什么是Http?

一、什么是Http?

超文本协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。Http定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎么把文档传给浏览器。Http是万维网可靠的交换文件(包括文本、图像、声音、以及视频等)的基础。

工作流程:一次的Http请求成为一次事务,其工作流程可以分为四步:

1、首先客户端和服务器需要建立连接。这个是从客户端发起的。

2、建立连接之后,客户端发送一个请求给服务器,请求方式的格式为:统一资源定位符(URL)、协议版本号、后边是MIME的信息(请求的是文本、图像、声音、视频.....)包括请求修饰符、客户端的信息以及可能的内容。

3、服务器接到请求后,基于相应的响应信息,其格式为一个状态行、包括信息的协议版本号、一个成功或者错误的代码、后边是MIME信息包括服务器信息,实体信息以及一些可能的内容。

4、客户端接受到服务器端返回的信息之后,根据需要将信息展示出来,然后断开与服务器的连接。

                              

Http协议永远是客户端发起,服务器端响应。

二、什么是URL?

统一资源定位符(Uniform Resource Locator),是因特网上标准的资源地址。URL格式主要分为三个部分:

1、协议,如Http、Https。

2、存有该资源的IP地址,有时候也包括端口号。如:192.168.1.112(现在基本使用域名代替,如:www.baidu.com)

3、主机资源的具体地址。如文件和目录名。如:index.jsp或aaa.doc

1和2之间用“://”隔开,2和3用“/”分开。1和2是不可缺少的,3是可以缺少的。

三、什么是TCP三次握手?

SYN(synchronousTCP/IP建立连接时的握手信号。ACKacknowledgement)为确认符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接受。

    过程如下图所示:

                  

     在客户端和服务器建立正常的TCP网络连接的时候,客户端首先会向服务器发送一个SYN信息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户端再以ACK消息响应,这样一来,客户端和服务器之间就建立了一种可靠的TCP连接,数据可以在客户端和服务器之间进行传递。

四、Http请求方式?

GET:请求获取Request-Uri所标识的资源

POST:在Request-Uri所标识的资源后附加新的数据

GetPost是比较常见的Http请求方式,另外还有HEADPUTDELETETRACECONNECTOPTIONS

五、Http响应码信息?

200 OK  //客户端请求成功

400 Bad Request  //客户端请求有语法错误,不能被服务器所理解

401 Unauthorized  //请求未经授权,这个状态码必须和WWW-Authenticate报头一起使用

403 Forbidden  //服务器收到请求,但是拒绝提供服务

404 Not Found  //请求资源不存在,大多是输入了错误的URL

500 Internal Server Error  //服务器发生不可预期的错误

503 Server Unavailable  //服务器不能处理当前客户端的请求,一段时间后可能会恢复正常

六、Http协议的特点?

1、支持客户端/服务器模式:就是客户端请求,服务器做出响应。

2、简单快速:客户端向服务器请求服务时,是需要传入请求方法和路径。请求方法常用的有GETPOST。每种方法都规定了客户端与服务器联系的类型不同。

3、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

4、无连接:无连接的含义就是限制每次连接只处理一个请求。服务器处理完客户端的请求,并收到客户端的应答之后,即立即断开连接。

5、无状态:HTTP协议是无状态的协议。无状态就是指协议对于事务的处理是没有记忆能力的。缺少状态就意味着如果后续处理需要前面的信息,则必须重新传送,这样会导致每次连接传送的数据量大。另一方面,在服务器不需要先前信息时,它的应答就会较快。



2 0
原创粉丝点击