第一篇:Web服务器实验3报告
操作系统实验报告三
姓名:陈玉博
学号:2011011207
日期:2013-11-24
【实验内容】:设计一段内存结构,能够缓存一定数量的网页,在客户端访问时,首先从内存中查找是否存在客户端访问的网页内容,如果存在,则直接从内存中将相应的内容返回给客户端;如果不存在,则从磁盘中将网页内容读入到内存,并返回给客户端。【实验思路】:客户端连接之后,在线程的处理函数handle()函数中,从内存中查找相应的网页内容,发送至客户端。如果在内存中找不到,则通过调用store()函数从磁盘中读取该网页到内存,当内存中的网页个数大于100的时候,通过某种算法从内存中移除某个网页,然后重新存入新的网页。在主函数中,连接成功以后调用handle()函数,然后在handle()函数中,如果找不到请求的网页,则调用store()函数。【主要代码及注释】----main函数:
void main(int argc, _TCHAR* argv[]){ //声明处理函数,作为QueueUserWorkItem的一个参数
DWORD WINAPI handle(void *);//初始化WinSock库
WORD wVersionRequested;WSADATA wsaData;
wVersionRequested = MAKEWORD(2, 2);
int wsaret=WSAStartup(wVersionRequested,&wsaData);if(wsaret)
return;//创建SOCKET
SOCKET socketSrv;
socketSrv=socket(AF_INET,SOCK_STREAM,0);if(socketSrv==INVALID_SOCKET)
return;SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(87);
//绑定套接字
if(bind(socketSrv,(struct sockaddr*)&addrSrv,sizeof(SOCKADDR))){ //关闭连接
shutdown(socketSrv,1);closesocket(socketSrv);
WSACleanup();return;} //等待客户端连接
SOCKADDR_IN addrCli;int len=sizeof(SOCKADDR);//监听端口
if(listen(socketSrv,5)==SOCKET_ERROR){ printf(“监听失败!n”);} while(true){ //接受连接
SOCKET socketconn= accept(socketSrv,(SOCKADDR*)&addrCli, &len);
if(socketconn==SOCKET_ERROR)
{
cout<<“接受连接失败!”;
return;
}
cout<<“连接成功”< shutdown(socketSrv,1);closesocket(socketSrv); WSACleanup();return;}----handle函数: DWORD WINAPI handle(void *para){ //声明store函数,用来从磁盘中读取网页内容到内存 void store(string);SOCKET socketconn=(SOCKET)para;//连接成功后与客户端进行会话 char recvBuff[1024];string sendBuff; string locDir;ifstream fp;//接收请求 if(recv(socketconn,recvBuff,1024,0)==SOCKET_ERROR)return 0;//读取http请求头 string recvBuffer=recvBuff;int posGet=recvBuffer.find(“GET”,0);int posHttp=recvBuffer.find(“HTTP”,0);for(int pos=posGet+4;pos locDir.push_back(''); continue;} locDir.push_back(recvBuffer[pos]);} int len=locDir.length();//截取网页的文件名 string ine_str=locDir.substr(1,len-2);//从内存中获得该网页的内容 string allcontent=webhtml[ine_str];//如果在内存中找不到,则再从磁盘中把网页读入内存,然后再从内存中查找 if(allcontent==“"){ //调用store函数,从磁盘中重新读取网页内容 store(ine_str);//重新从内存中读取网页内容 allcontent=webhtml[ine_str];} //将读取的内容追加入sendBuff中 sendBuff.append(allcontent);fp.close();//响应请求,将页面信息发送到客户端 if(send(socketconn,sendBuff.c_str(),sendBuff.length(),0)==SOCKET_ERROR){ cout<<”传送文件错误!“; return 0;} shutdown(socketconn,1);closesocket(socketconn);//关闭连接 return 0;}----Store()函数: void store(string ine_str){ //如果内存中的网页个数大于100个,则把第一个移除 if(webhtml.size()>100){ map char buffer[1024*10];//每次读取1024个字节到缓存 ifstream fp;//文件流 fp.open((loc_webpage+ine_str).c_str(),std::ios::binary);//打开指定文件 if(fp.fail())cout<<”存储文件失败!"< fp.getline(buffer,1024*10);//从文件中读取1024个字节到缓冲区里面 allchars.append(buffer);//把缓存中的字节加到allchars后面 buffer[0]=' ';} } webhtml[ine_str]=allchars;//存储网页名字和内容,保存到内存中 fp.close();} 【运行结果】 ----->客户端未请求之前 ---->客户端发出请求(输入相应网址) ---->服务器端显示连接成功 客户端显示出网页内容 【出现问题】:当程序第一次执行主函数的while(true)的时候,输出“连接成功”后直接跳过QueueUserWorkItem()函数,即不执行此函数;但是当第二次执行while(true)循环的时候,却进入了QueueUserWorkItem()函数。出现的现象是第一次把网页内容送到客户端之前,显示两个”连接成功”。【原因及解决方法】:在错误的程序中,sockconn是在while(true)循环外面定义的,即执行所有的while(true)循环都是一个sockconn,这就导致了不同的客户端请求使用同一个sockconn的现象,所以出现了上面的错误。在每次的while(true)循环中都定义一个新的sockconn即可解决此问题。 【实验心得】在此次实验中,虽然编写的代码不多,但是有很多细节需要注意到。比如说空格问题,当截取网页的名称时就出现了多余空格的现象:不管我在客户端输入什么请求,服务器都不会返回内容给客户端。当我调试程序的时候才发现,每次截取网页名字的时候都会在字符串后面多余一个空格,这就导致了没有任何网页名字与之对应,所以服务器不会返回任何内容给客户端。空格问题是大问题,我已经深受其害两次了。 实验2 web服务器配置 一、实验目的: 掌握如何使用windows 2000 server的IIS5.0配置出web服务器 二、实验内容: 1、创建一个web站点,并且可以实现在别人的计算机上访问该站点 2、使用不同的ip建立多个站点 3、在一个站点下建立多个子站点(使用虚拟目录实现) 4、在同一个套接字(即ip地址+端口)上建立多个站点(使用加主机头名 方法实现) 5、对站点进行安全管理(如浏览权限、帐号的使用、ip地址的设定) 三、实验要求: 一定要保证让别人正常的访问你建立的站点,并使实验结果达到预期的目的! 四、实验步骤: 1.使用当地IP地址建立web站点(1)准备工作: ①关闭Windows 防火墙 实验中,为了我们所建的站点能够被成功访问,先将Windows 防火墙关闭。如图: ②IIS功能设置 控制面板所有控制面板项程序和功能---“打开或关闭windows所有功能”: 出现了安装Windows功能的选项菜单,在“Internet信息服务”中手动选择需要的功能,如下图: ③下载“花生壳软件”到本地,申请免费域名mqqfhg。 这样,完成了前期的所有准备工作,开始进行web服务器的建设。(2)开始建立web站点 ①创建web站点“酒窝” 打开“控制面板”——“管理工具”—“ Internet 信息服务(IIS)管理器”——右击“网站——“添加网站——选择“IP地址”及“物理路径”: ② 选择“目录浏览”,点右侧的“启用”,将其设为启用状态。 ③ 点击主页右侧的绑定,分配ip地址,端口保持“80”不变。 ④ 保存一个网站文件(如百度首页),后缀名为.htm,将其保存在①中设定的物理路径(E:222222)中,并重命名为index.htm 更改“默认文件”,右侧改为启用,并将index.htm上移到第一位。如图: ⑤ 打开“asp”,如下图,更改“启用父路径”为“True” ⑥ 点击右侧的“启动”,启动网站。 ⑦ 测试:在浏览器地址栏输入:http://mqqfhg.vicp.cc并链接。页面如下图: 2.使用同一个ip,同一个主机头名,不同的端口建立多个web站点 新建web站点“小酒窝”,具体步骤与1-(2)类似,但是要更改“物理路径”,并且需要更改第③步: “绑定”——“添加”——更改端口号为“81”,其他不变。 测试:在浏览器地址栏中输入:http://mqqfhg.vicp.cc:81 并链接,显示页面如图: 3.使用用一个ip地址,同一端口,不同主机名建立web站点 ①用“花生壳”软件新申请一个域名:zhyykl13141。 ②新建web站点“小小”,具体步骤见1-(2),但需要更改“物理路径”,并且需要更改第③步: “绑定”——“添加”——“主机名”改为“zhyykl13141”,其他不变。 测试:在浏览器地址栏中输入http://zhyykl13141.vicp.cc 并链接,页面如下图: 计 算 机 网 络 实 验 课程题目: 姓 名: 学 号: 指导老师: 目 录 一、实验目的....................................................1 二、实验内容....................................................1 三、实验过程:..................................................1 (1)web服务器的搭建:..........................................1 (2)制作一个主题网站...........................................5 四、实验总结...................................................8 计算机科学与技术(本)12级.........................................................................计算机网络技术实验6实验7报告 一、实验目的 1、掌握web服务器的配置方法; 2、掌握IIS及相关组件的安装; 3、掌握网站建立的方法; 二、实验内容 1、按照实验要求搭建web服务器、具体包括服务器的安装和配置; 2、根据不同的windows系统安装IIS6(本机是win7系统安装的是IIS7); 3、用Macromedia Dreamweaver 8制作一个基于磁盘的网站; 三、实验过程: 1、web服务器的搭建: 安装IIS7(1)首先点击电脑开始按钮—控制面板—点击“程序”,如图1-1 图1-1 江苏城市职业学院....................................................................................................................................信息工程系 计算机科学与技术(本)12级.........................................................................计算机网络技术实验6实验7报告 (2)在程序和功能下面,点击“打开和关闭windows功能”,如下图1-2 图1-2 (3)找到internet信息服务选项,然后需要的选项前面打勾;如下图1-3 图1-3 江苏城市职业学院....................................................................................................................................信息工程系 计算机科学与技术(本)12级.........................................................................计算机网络技术实验6实验7报告 (4)然后点击确认,进入系统安装设置,需要等待进度条结束,如图1-4 图1-4 (5)安装成功后,页面会消失,直接回到控制面板选择“类别”里的大图标,如下图1-5 图1-5(6)选择管理工具,如下图1-6 图1-6 江苏城市职业学院....................................................................................................................................信息工程系 计算机科学与技术(本)12级.........................................................................计算机网络技术实验6实验7报告 (7)进入管理工具窗口,点击Internet信息服务(IIS)管理器,如下图1-7 图1-7(8)双击Internet信息服务(IIS)管理器,进入到管理窗口,如下图1-8 图1-8(9)点击右边的浏览*:80(http),如下图1-9 江苏城市职业学院....................................................................................................................................信息工程系 计算机科学与技术(本)12级.........................................................................计算机网络技术实验6实验7报告 图1-9 2、制作一个主题网站 制作步骤: (1)打开Macromedia Dreamweaver 8点击菜单中的文件—新建—基本页—HTML,如图2-1 图2-1 (2)点击右下角的下拉列表框,选择管理站点中的新建站点,路径为自己新建网页保存的文件夹路径,如下图2-2和2-3 江苏城市职业学院....................................................................................................................................信息工程系 计算机科学与技术(本)12级.........................................................................计算机网络技术实验6实验7报告 图2-2 图2-3 制作自己的网站,本网站需要7个网页,网页名字分别为index(江苏城市职业学院)、header(顶部)、left(左侧边栏)、news(学院新闻)、picture(学员风采)、about(学院概况)、footer(底部)如下图2-4 图2-4 江苏城市职业学院....................................................................................................................................信息工程系 计算机科学与技术(本)12级.........................................................................计算机网络技术实验6实验7报告 主页index.html如下图2-5 图2-5 (3)网站设计完成后进行验证,右击服务器左侧网站进行添加网站、如下图2-6 图2-6 (4)在服务器右边点击浏览*:80(http)可以显示自己设计的网站页面、表示测试成功!如下图2-7 江苏城市职业学院....................................................................................................................................信息工程系 计算机科学与技术(本)12级.........................................................................计算机网络技术实验6实验7报告 图2-7 四、实验总结 通过这次实验,我学会了如何搭建web服务器,怎样通过局域网域名登陆网站,并且学会了怎样通过Dreamweaver制作简易网站,以及网页与网页之间的超链接和在网页中使用命名锚记。纸上得来终觉浅,绝知此事要躬行,只有自己去摸索一遍,才可以学到更多的东西。江苏城市职业学院....................................................................................................................................信息工程系 实验报告要求 1、报告用纸 采用统一的河南科技大学实验报告用纸。 2、实验报告内容 具体内容包含以下几项:(1)实验题目(2)实验学时(3)实验目的(4)实验环境(5)实验内容 (6)出现的问题及解决方法 实验环境 实验的硬件平台为方正台式机,主频2.4Ghz,内存4Gb。软件平台为VS 2010、Dreamveaver 8、Access 2010、Sqlserver 2008。1 实验一 Web开发环境的建立 一、实验学时 2学时 二、实验目的 1、掌握IIS Web服务器的配置; 2、熟悉Visual Studio 2010开发环境。 三、实验环境 Windows7 四、实验内容 万维网发布服务 通过将客户端 HTTP 请求连接到在 IIS 中运行的网站上,万维网发布服务(www.xiexiebang.com“>清华大学 第二篇:计算机网络实验报告——Web服务器的配置
第三篇:web服务器搭建与网站制作实验报告
第四篇:web实验报告