【Android基础知识】Http协议基础

来源:互联网 发布:airbnb淘宝300优惠 编辑:程序博客网 时间:2024/05/29 03:48

通信协议

第一种:HTTP协议,也是工作中最常用的,是建立在TCPIP基础上实现的。

第二种:FTP协议

第三种:TCPIP协议,它也是最底层的协议,其他的方式必须要通过它,但是要实现这种协议必须实现socket编程,这种方法是用来上传一些比较大的文件,视频,进行断点续传的操作。

什么是HTTP协议?

1.超文本传输协议(HTTPHyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

2.Http是一个客户端和服务器端请求和应答的标准,客户端是终端用户,服务器端是网站。

3.HTTP是客户端浏览器或其他程序与WEB服务器之间的应用层通信协议。

 

HTTP工作原理

1.客户端与服务器建立连接。只要单击某个超链接,HTTP的工作开始。

2.建立连接后,客户端向服务器端发送一个请求,请求方式的格式为:统一资源标识符(URL),版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

3.服务器接收到请求后,向客户端发送响应信息,其格式为一个状态行,包括信息的协议版本号,一个成功或错误的代码,后边是MiME信息包括服务器信息,实体信息和可能的内容。

4.客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,客户端与服务器端断开连接;

 

Http的特点

1. 支持客户端/服务器模式,HTTP协议永远都是客户端发起请求,服务器响应。

这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用GETHEADPOST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型有Content-Type作标记。

4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户端的请求并受到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

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

URL

统一资源定位符(URL,英文Uniform Resource Locator的缩写)也被称为网页地址,因特网上标准的资源的地址。

URL的格式由下列三部分组成:

第一部分是协议(或称为服务方式);

第二部分是存有该资源的主机的IP地址(有时也包括端口号);

第三部分是主机资源的具体地址。 如目录和文件名等。

 

第一部分和第二部分之间用 “://”符号隔开,第二部分和第三部分用“/”符号隔开,第一部分和第二部分是不可缺少的,第三部分有时可以省略。

如:http://www.baidu.com/   

https 协议,所有的数据都是经过加密的。

 

TCP/IP基础--TCP三次握手


1.客户端发送一个请求信息 SYN给服务器端。

2.服务器端接收到SYN信息后知道客户端要和其建立连接,服务器把SYN信息追加一个ack信息发送给客户端确认客户端是否可以和其连接。

3.客户端接收到信息后,再次给服务器发送ack信息确认和服务器连接。

HTTP1.0HTTP1.1

HTTP1.0每次请求都需要建立新的TCP连接,连接不能复用。

HTTP1.1新的请求可以在上次请求的TCP连接之上发送,连接可以复用。优点是减少重复进行TCP三次握手的开销,提高效率。

HTTP1.1Request消息头里多了一个Host域,HTTP1.0则没有这个域。Hostwww.w3.org

HTTP1.1增加了OPTIONSPUTDELETETRACECONNECT这些Request方法。

 

请求报文和响应报文

1.请求报文格式:

请求行 - 通用信息头- 请求头- 实体头- 报文主体

2.响应报文格式:

状态行- 通用信息头- 响应头- 实体头- 报文主体

 

Http请求体的内容介绍

请求体

是否必选

GET/POST[URL路径]HTTP/[HTTP版本]

Host[URL主机]

User-Agent:[请求类型唯一标识]

Accept[设置服务器返回的数据类型]

Accept-Language[设置服务器返回的语言]

Accept-Encoding:[设置服务器返回的压缩编码]

Accept-Charset:[设置服务器返回的文字编码]

\r\n\r\n

Post内容

Http响应的内容介绍

回复体

是否必须返回

HTTP/[HTTP版本][HTTP状态]

Date[服务器时间]

Server[服务器类型]

Content-length:[返回的数据流内容类型]

Content-Type:[返回的数据流内容长度]

Content-Encoding:[返回的数据流压缩编码]

Accept-Charset:[设置服务器返回的文字编码]

\r\n\r\n

回复体内容


0 0
原创粉丝点击