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

来源:互联网 发布:明星字体软件 编辑:程序博客网 时间:2024/05/16 02:09

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

七、OSI七层协议

OSI七层参考模型每一层都有哪些协议

 

第七层应用层 

               


应用层

与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:TELNET,HTTP,FTP,NFS,SMTP等。

表示层

这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。

会话层

它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。

传输层

这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。

网络层

这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。

数据链路层

它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。

物理层

OSI的物理层规范是有关传输介质的特这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。
八、TCP/IP四层协议