没有合适的资源?快使用搜索试试~ 我知道了~
C 实现简单WEB服务器.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 108 浏览量
2022-07-05
04:00:39
上传
评论
收藏 37KB DOC 举报
温馨提示
试读
12页
C 实现简单WEB服务器
资源推荐
资源详情
资源评论
C 实现简单WEB服务器
作者:与时俱进发表于2010-07-22 09:59原文链接阅读:40评论:0
一、HTTP协议的作用原理
WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是
Web网页。WWW的工作基于客户机/服务器计算模型,由Web浏览器(客户机)和Web服务
器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基于
TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无
状态的、面向对象的协议。HTTP协议的作用原理包括四个步骤:
连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文
件,此文件的建立标志着连接建立成功。
请求:Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是GET或
POST命令(POST用于FORM参数的传递)。GET命令的格式为:
GET路径/文件名HTTP/1.0
文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。
应答:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到
后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示
出所请求的页面。
例:假设客户机与www.mycomputer.com:8080/mydir/index.html建立了连接,
就会发送GET命令:GET/mydir/index.html HTTP/1.0。主机名为www.mycomputer.com
的Web服务器从它的文档空间中搜索子目录mydir的文件index.html。如果找到该文件
,Web服务器把该文件内容传送给相应的Web浏览器。
为了告知Web浏览器传送内容的类型,Web服务器首先传送一些HTTP头信息,然后
传送具体内容(即HTTP体信息),HTTP头信息和HTTP体信息之间用一个空行分开。
常用的HTTP头信息有:
①HTTP 1.0 200 OK
这是Web服务器应答的第一行,列出服务器正在运行的HTTP版本号和应答代码。
代码"200 OK"表示请求完成。
②MIME_Version:1.0
它指示MIME类型的版本。
③content_type:类型
这个头信息非常重要,它指示HTTP体信息的MIME类型。如:content_type:
text/html指示传送的数据是HTML文档。
④content_length:长度值
它指示HTTP体信息的长度(字节)。
关闭连接:当应答结束后,Web浏览器与Web服务器必须断开,以保证其它Web浏
览器能够与Web服务器建立连接。
二、C#实现Web服务器功能的程序设计
根据上述HTTP协议的作用原理,实现GET请求的Web服务器程序的方法如下:
创建TcpListener类对象,监听某端口(任意输入闲置端口如:8080)。
等待、接受客户机连接到该端口,得到与客户机连接的socket;
从与socket关联的输入流中读取一行客户机提交的请求信息,请求信息的格式为
:GET路径/文件名HTTP/1.0
从请求信息中获取请求类型。如果请求类型是GET,则从请求信息中获取所访问
的HTML文件名。没有HTML文件名时,则以index.html作为文件名;
如果HTML文件存在,则打开HTML文件,把HTTP头信息和HTML文件内容通过socket
传回给Web浏览器,然后关闭文件。否则发送错误信息给Web浏览器;
关闭与相应Web浏览器连接的socket字。
实现的代码如下:
//////////webserver.cs//////////////////
namespace cnnbsun.webserver
{
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
class MyWebServer
{
private TcpListener myListener;
private int port=8080;//选者任何闲置端口
//开始兼听端口
//同时启动一个兼听进程
剩余11页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 83
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功