首页 > 开发 > 综合 > 正文

基于Jave的Web服务工作机制(1)

2024-07-21 02:14:20
字体:
来源:转载
供稿:网友
一个web服务器也被称为一个http服务器,因为它使用http协议和它的客户进行通讯,而这些客户通常是浏览器。 一个基于java的web服务器使用了两个重要的类:java.net.socket和java.net.serversocket,并且是通过http消息进行通讯的。本文开头将讨论http和这两个类,后面,将解释一个简单web服务器应用程序的工作机制。

  超文本传输协议 (http)

  http协议允许服务器和客户机通过internet接收和发送数据。它是个请求和回应协议----客户机发送请求,服务器对请求给出回应。http 使用可靠的tcp 连接,默认tcp端口是80。http的第一版是http/0.9,随后被 http/1.0所取代。当前最新的版本是http/1.1,这个在rpc2616规范文档中给出了定义。

这一章节简单讲叙了http 1.1, 对于你理解web服务器应用程序发送的消息还是足够的。如果你很感兴趣,可以参考rfc 2616文档。

  使用http,客户端通过建立一个连接和发送一个http请求来初始化事务会话,服务器联系客户端或者回应一个callback连接给客户端。 它们都可以中断连接。比如,在使用web浏览器时,你可以点击浏览器上的stop按钮来停止文件下载进程,就有效的关闭了和这个web服务器的http连接。

  http 请求(requests)

  一个http request包含三个部分:

  方法,url,协议/版本(method-uri-protocol/version)
  请求包头request headers
  实体包(entity body)
  下面给出一个http请求的范例:

  post /servlet/default.jsp http/1.1
  accept: text/plain; text/html
  accept-language: en-gb
  connection: keep-alive
  host: localhost
  referer: http://localhost/ch8/senddetails.htm
  user-agent: mozilla/4.0 (compatible; msie 4.01; windows 98)
  content-length: 33
  content-type: application/x-www-form-urlencoded
  accept-encoding: gzip, deflate

  lastname=franks&firstname=michael

  请求的第一行就是method-uri-protocol/version。

  post /servlet/default.jsp http/1.1

  请求的是post方法,后面的 /servlet/default.jsp 表示一个url地址,http/1.1表示协议的版本。

  http标准规范定义了一些请求方法,用来给每个http请求所使用。http 1.1支持7中请求方法: get, post, head, options, put, delete, 和 trace。 get和post 在internet的应用程序中是使用最普遍的两个方法。

  uri完整的指明了一个internet资源。一个uri通常是相对于服务器的根目录被解释的。 因此,它总是使用符号(/)开头。一个url实际是一个uri类型。协议版本表示当前正在使用的http协议的版本。

  请求包头(request header)包含了一些有用的客户机环境的信息和请求的实体(entity body)信息。比如,它可以包含浏览器使用的语言和实体的长度等等。每个请求包头都被crlf(回车换行)序列所分离。

  在先前的http请求中,实体是下面简单的一行:

  lastname=franks&firstname=michael

  在一个典型的http请求中,这个实体能够很容易地变得更长。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表