1.如何写一个简单的<<<< File content goes here浏览器并从服务器的响应中获得服务器的信息:比如运行在Apache。
上面翻译成翻译成语言上面就是RFC 2616(摘自:<<<< File content goes here上面例子就是最简单的交互过程描述,需要对HTTP协议中具体的命令了解,就需要阅读- 作者: trueman 2005年09月4日, 星期日 20:31 回复(0) | 引用(0) 加入博采HTTP――网海之舟 HTTP(超文本传输协议,Hyper-Text Transport Protocol )是用于在互联网上传输超文本文件的协议。它对一个HTTP客户程序和一个HTTP服务程序进行端对端的连接。
HTTP是在WWW (WWW )上所应用的最重要的协议。它是Web 自己的协议,用来从一个HTTP服务器上检索信息。
这可以是用HTML写的文本文件,静态图象,声音文件,动画视频或仅是简单的文本文件:HTTP服务器知道怎样识别文件类型,并通过线路在传输之前告诉你的浏览器将要传来什么样的文件,以便浏览器知道如何对待。HTTP是Web 技术中的一个最基本的协议,它是一个应用层协议,直接用TCP层传递。
整个协议的通信过程十分简单。为了要讲清HTTP传送一个文件的通信过程,首先有必要来重申一下URL 的概念。
URL (Uniform Resource Locator)的中文意思为统一资源定位器,它是用来确定在IP网上Web 系统信息资源的位置的,URL 从结构上讲很有点像计算机中的文件名,例如下面就是一个URL.这个URL 实际上要找的是Geo.html文件,前面都是路径名。在Web 系统中,就是用URL 来寻找相应文件的。
当然实际上URL 还可以有复杂的形式并可带各种相关参数。在基本了解了URL 后,就可以来看HTTP是怎样工作的了。
当客户机向服务器请求一个文件时,首先要建立一条TCP 连接,在TCP 连接好后,客户机就向服务器发送URL ,让服务器根据URL 去寻找相应的文件,找到文件后就从已建立好的TCP 通道上发给客户机,文件发送完毕即拆除TCP 连接。当要寻找另一个文件时,需要重复上述过程。
从上述过程可以看出,HTTP协议十分简单。使用HTTP后,服务器需要做的事只是接受一个请求(URL ),根据用户的请求发送相应文件,服务器不要做任何检索轨迹的记录,从而使一个服务器支持的用户数大为增加。
但HTTP也有不少缺点,因为其简单,每传一个文件就要建一次TCP。
3.如何使用http协议与服务端通信
首先,需要明确一下http通信流程,Android目前提供两种http通信方式,HttpURLConnection和HttpClient,HttpURLConnection多用于发送或接收流式数据,因此比较适合上传/下载文件,HttpClient相对来讲更大更全能,但是速度相对也要慢一点。在此只介绍HttpClient的通信流程:
1.创建HttpClient对象,改对象可以用来多次发送不同的http请求
2.创建HttpPost或HttpGet对象,设置参数,每发送一次http请求,都需要这样一个对象
3.利用HttpClient的execute方法发送请求并等待结果,该方法会一直阻塞当前线程,直到返回结果或抛出异常。
4.针对结果和异常做相应处理
根据上述流程,发现在设计类的时候,有几点需要考虑到:
1.HttpClient对象可以重复使用,因此可以作为类的静态变量
2.HttpPost/HttpGet对象一般无法重复使用(如果你每次请求的参数都差不多,也可以重复使用),因此可以创建一个方法用来初始化,同时设置一些需要上传到服务器的资源
3.目前Android不再支持在UI线程中发起Http请求,实际上也不该这么做,因为这样会阻塞UI线程。因此还需要一个子线程,用来发起Http请求,即执行execute方法
4.不同的请求对应不同的返回结果,对于如何处理返回结果(一般来说都是解析json&;更新UI),需要有一定的自由度。
5.最简单的方法是,每次需要发送http请求时,开一个子线程用于发送请求,子线程中接收到结果或抛出异常时,根据情况给UI线程发送message,最后在UI线程的handler的handleMessage方法中做结果解析和UI更新。这么写虽然简单,但是UI线程和Http请求的耦合度很高,而且代码比较散乱、丑陋。
4.http协议的详细描述
HTTP服务器与HTTP客户机之间的会话如下:
1 客户机与服务器建立联系
与服务器建立连接,就是与SOCKET建立连接,因此要指定机器名称、资源名称
和断口号,可以通过URL来提供这些信息。URL的格式为:
HTTP://<IP地址>;/[端口号]/[路径][?<;查询信息>]
资源的缺省值是INDEX或DEFAULT,断口号缺省为80.
2 客户向服务器提出请求
请求信息包括希望返回的文件名和客户机信息.客户机信息以请求头发送
给服务器,请求头包括HTTP方法和头字段.
HTTP方法常用的有GET、HEAD、POST,而PUT、DELETE、LINK、UNLINK方法
许多HTTP服务器都不使用。
头字段包括:
DATE:请求发送的日期和时间
PARGMA:用于向服务器传输与实现无关的信息。这个字段还用于告诉代理服
务器,要从实际服务器而不是从高速缓存取资源
FORWARDED:可以用来追踪机器之间,而不是客户机和服务器的消息。这个字段
可以用来追踪在代理服务器之间的传递路由。
MESSAGE_ID:用于唯一地标识消息
ACCEPT: 通知服务器客户所能接受的数据类型和尺寸。(*/*表示可以接受
所有类型的数据。
AOTHORIZATION:向服务器提供旁路安全保护和加密机制,若服务器
不需要这个字段,则不提供这个字段
FROM:当客户应用程序希望想服务器提供有关其电子邮件地址时使用
IF-MODEFIED-SINCE用于提供条件GET。如果所请求的文档自从所指定
的日期以来没有发生变化,则服务器应不发送该对象。如果所发送的日期格式不合
法,或晚于服务器的日期,服务器会忽略该字段
BEFERRER:向服务器进行资源请求用到的对象
MIME-VERTION:用于处理不同类型文件的MIME协议版本号
USER-AGENT:有关发出请求的客户信息
3 服务器对请求作出应答
服务器收到一个请求,就会立刻解释请求中所用到的方法,并开始处理应答。
服务器的应答消息也包含头字段形式的报文信息。
报文第一行是状态行,格式为 <HTTP版本号><;状态代码><;解释短语>
状态码是个三位数字码,分为四类:
以2开头,表示请求被成功处理
以3开头,表示请求被重定向
以4开头,表示客户的请求有错
以5开头,表示服务器不能满足请求
解释短语是对状态码的解释。
报文还向客户返回几个头字段,如:
STATUS CODE/REASON PHRASE
DATE
LAST-MODIFIED
SERVER
CONTENT _TYPE
RETRY_AFTER:服务器太忙时返回这个字段
WWW_AUTHENTICATE:当服务器的安全机制要求客户发送某中授权信息时使用该字段
报文最后是实体信息,即客户请求得到的HTTP服务器上的资源内容。
5.如何使用http协议与服务端通信
首先,需要明确一下http通信流程,Android目前提供两种http通信方式,HttpURLConnection和HttpClient,HttpURLConnection多用于发送或接收流式数据,因此比较适合上传/下载文件,HttpClient相对来讲更大更全能,但是速度相对也要慢一点。
在此只介绍HttpClient的通信流程:1.创建HttpClient对象,改对象可以用来多次发送不同的http请求2.创建HttpPost或HttpGet对象,设置参数,每发送一次http请求,都需要这样一个对象3.利用HttpClient的execute方法发送请求并等待结果,该方法会一直阻塞当前线程,直到返回结果或抛出异常。4.针对结果和异常做相应处理根据上述流程,发现在设计类的时候,有几点需要考虑到:1.HttpClient对象可以重复使用,因此可以作为类的静态变量2.HttpPost/HttpGet对象一般无法重复使用(如果你每次请求的参数都差不多,也可以重复使用),因此可以创建一个方法用来初始化,同时设置一些需要上传到服务器的资源3.目前Android不再支持在UI线程中发起Http请求,实际上也不该这么做,因为这样会阻塞UI线程。
因此还需要一个子线程,用来发起Http请求,即执行execute方法4.不同的请求对应不同的返回结果,对于如何处理返回结果(一般来说都是解析json&更新UI),需要有一定的自由度。5.最简单的方法是,每次需要发送http请求时,开一个子线程用于发送请求,子线程中接收到结果或抛出异常时,根据情况给UI线程发送message,最后在UI线程的handler的handleMessage方法中做结果解析和UI更新。
这么写虽然简单,但是UI线程和Http请求的耦合度很高,而且代码比较散乱、丑陋。
6.HTTP协议是什么意思
HTTP 协议定义服务器端和客户端之间文件传输的沟通方式。目前HTTP协议的版本是Http1.1。RFC 2616描述了HTTP协议的具体信息。
这个协议已经成为浏览器和Web站点之间的标准。
当我上网的时候底层是如何进行交互的?
当访问者点击一个超链接的时候,将会给浏览器提交一个URL地址。通过这个URL地址,浏览器便知道去链接那个网站并去取得具体的页面文件(也可能是一张图片,一个pdf文件)。
HTTP工作的基础就是,连接一个服务器并开始传输文件到浏览器。
HTTP传输的基本过程
在http传输的过程中,被称为客户端的请求者向服务器请求一个文件。
最基本的过程是:
1 客户端连接一个主机;
2 服务器接收连接,
3 客户端请求一个文件,
4 服务器发送一个应答.
转载请注明出处育才学习网 » http协议服务器端怎么写