你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:文章管理 / 本期精品文章
用Java实现非阻塞的HTTP服务器
 

摘要

首先对HTTP协议做了简要的介绍,然后介绍了用Java创建的一个非阻塞的HTTP服务器。

 

关键词

HTTP协议,TCP协议,非阻塞,URLURI,缓冲区,线程池

 

一、HTTP协议简介

当用户打开浏览器,输入一个URL地址,就能接收到远程HTTP服务器发送过来的网页。浏览器就是常见的HTTP客户程序。如图1所示,HTTP客户程序必须先发出一个HTTP请求,然后才能接收到来自HTTP服务器的响应。

HTTP客户程序

HTTP服务器

HTTP请求(要求访问hello.htm

HTTP响应(返回hello.htm的内容)

 

 

 

 


 

1  HTTP客户程序与HTTP服务器的通信过程

HTTP客户程序和HTTP服务器分别由不同的软件开发商提供,它们都可以用任意的编程语言编写。用VC编写的HTTP客户程序能否与用Java编写的HTTP服务器顺利通信呢?答案是肯定的。HTTP协议严格规定了HTTP请求和HTTP响应的数据格式,只要HTTP服务器与客户程序都遵守HTTP协议,就能彼此看得懂对方发送的消息。

1HTTP请求格式

HTTP协议规定,HTTP请求由三部分构成,分别是:请求方法、URIHTTP协议的版本;请求头(Request Header);请求正文(Request Content)。

下面是一个HTTP请求的例子:

POST /hello.htm HTTP/1.1

Accept: image/gif, image/jpeg, */*

Referer: http://localhost/login.htm

Accept-Language: en,zh-cn;q=0.5

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Host: localhost

Content-Length: 43

Connection: Keep-Alive

Cache-Control: no-cache

 

username=weiqin&password=1234&submit=submit

 

  推荐精品文章

·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 
·2023年7月目录
·2023年6月目录 
·2023年5月目录
·2023年4月目录 
·2023年3月目录 
·2023年2月目录 
·2023年1月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089