您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > http服务器的设计与实现
透过完成上述工作,使我认识到一个称职的管理人员应当具有良好的语言表达潜力、流畅的文字写作潜力、较强的组织领导潜力、灵活的处理问题潜力、有效的对外联系潜力、大型活动的策划及筹备潜力。网络课程设计实验报告题目:HTTP服务器的设计及实现姓名:孙宇飞、庄好涛、王斌学院:信息科学技术学院专业:计算机科学与技术班级:计科82班学号:、、指导老师:叶锡君职称:副教授2011年9月11日南京农业大学教务处制透过完成上述工作,使我认识到一个称职的管理人员应当具有良好的语言表达潜力、流畅的文字写作潜力、较强的组织领导潜力、灵活的处理问题潜力、有效的对外联系潜力、大型活动的策划及筹备潜力。1目录目录1.设计任务及要求............................................................................................错误!未定义书签。1.1设计目的.............................................................................................错误!未定义书签。1.2设计要求.............................................................................................错误!未定义书签。2.工作原理及设计方案....................................................................................错误!未定义书签。2.1工作原理.............................................................................................错误!未定义书签。2.2设计方案.............................................................................................错误!未定义书签。2.3开发环境............................................................................................错误!未定义书签。2.4程序流程图.........................................................................................错误!未定义书签。2.5核心代码............................................................................................错误!未定义书签。2.4.1主程序.....................................................................................错误!未定义书签。2.4.2请求处理函数.........................................................................错误!未定义书签。2.4.3无法响应请求.........................................................................错误!未定义书签。2.4.4404响应...................................................................................错误!未定义书签。透过完成上述工作,使我认识到一个称职的管理人员应当具有良好的语言表达潜力、流畅的文字写作潜力、较强的组织领导潜力、灵活的处理问题潜力、有效的对外联系潜力、大型活动的策划及筹备潜力。22.4.5判断是否是目录.....................................................................错误!未定义书签。2.4.6判断文件是否存在.................................................................错误!未定义书签。2.4.8判断文件类型.........................................................................错误!未定义书签。2.4.9执行CGI程序........................................................................错误!未定义书签。2.4.10判断请求的是否是cgi程序................................................错误!未定义书签。3.实验验证........................................................................................................错误!未定义书签。3.1实验设备及材料.................................................................................错误!未定义书签。3.2实验步骤.............................................................................................错误!未定义书签。3.3实验截图............................................................................................错误!未定义书签。3.4实验结果.............................................................................................错误!未定义书签。4.思考和总结....................................................................................................错误!未定义书签。透过完成上述工作,使我认识到一个称职的管理人员应当具有良好的语言表达潜力、流畅的文字写作潜力、较强的组织领导潜力、灵活的处理问题潜力、有效的对外联系潜力、大型活动的策划及筹备潜力。31.设计任务及要求1.1设计目的运用数据通信及网络课程所学的知识,设计一个简单的http服务器,在实现的过程中继续深入了解网络通信的原理,锻炼UNIX环境下网络编程的能力,熟悉socket编程原理和http协议,从而巩固所学网络知识。1.2设计要求1)要能实现get方法;2)能响应请求的html页面;3)还能够响应请求的jpg的等图片文件;4)能响应请求的目录的信息,并以列表显示;2.工作原理及设计方案2.1工作原理HTTP协议工作流程:1.首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。2.建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息:包括请求修饰符、客户机信息和可能的内容。3.服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。4.客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客http工作流程图户机与服务器断开连接。2.2设计方案协议版本号:使用HTTP1.0透过完成上述工作,使我认识到一个称职的管理人员应当具有良好的语言表达潜力、流畅的文字写作潜力、较强的组织领导潜力、灵活的处理问题潜力、有效的对外联系潜力、大型活动的策划及筹备潜力。4请求方法:仅实现get方法响应文件的类型:text/plain,image/gif,image/jpg,image/jpeg工作模式:多进程模式,每个进程单独处理一个请求。2.3开发环境VmwareWorkstation6.5虚拟机下FreeBSD环境,用C语言进行开发,开发工具包括:vim,gcc,gdb。2.4程序流程图图1.主程序创建socket连接接收client连接读取client请求处理请求关闭socket循环透过完成上述工作,使我认识到一个称职的管理人员应当具有良好的语言表达潜力、流畅的文字写作潜力、较强的组织领导潜力、灵活的处理问题潜力、有效的对外联系潜力、大型活动的策划及筹备潜力。5图2.请求处理程序Fork()!=0退出YN响应501错误GET方法?NY请求对象存在?响应404错误YN请求对象为目录?响应目录信息YN请求对象为CGI交给CGI程序执行YN响应请求的文件返回透过完成上述工作,使我认识到一个称职的管理人员应当具有良好的语言表达潜力、流畅的文字写作潜力、较强的组织领导潜力、灵活的处理问题潜力、有效的对外联系潜力、大型活动的策划及筹备潜力。62.5核心代码2.4.1主程序intmain(intargc,char*argv[]){intsock,fd;FILE*fpin;charrequest[BUFSIZ];if(argc==1){fprintf(stderr,usage:webservport\n);exit(1);}/*创建socket连接*/sock=make_server_socket(atoi(argv[1]));if(sock==-1){exit(2);}/*主循环*/while(1){//接收socketfd=accept(sock,NULL,NULL);fpin=fdopen(fd,r);//读取请求fgets(request,BUFSIZ,fpin);printf(gotacall:request=%s,request);read_til_crnl(fpin);//处理请求process_rq(request,fd);//关闭socketfclose(fpin);透过完成上述工作,使我认识到一个称职的管理人员应当具有良好的语言表达潜力、流畅的文字写作潜力、较强的组织领导潜力、灵活的处理问题潜力、有效的对外联系潜力、大型活动的策划及筹备潜力。7}return0;}2.4.2请求处理函数intprocess_rq(char*rq,intfd)//加void会报警告不知道为什么?{charcmd[BUFSIZ],arg[BUFSIZ];/*创建一个新进程,如果不是子进程则直接返回*/if(fork()!=0){return-1;}strcpy(arg,./);//加上./前缀if(sscanf(rq,%s%s,cmd,arg+2)!=2){return-1;}if(strcmp(cmd,GET)!=0){cannot_do(fd);}elseif(not_exist(arg)){do_404(arg,fd);}elseif(isadir(arg)){do_ls(arg,fd);}elseif(ends_in_cgi(arg)){do_exec(arg,fd);}else{透过完成上述工作,使我认识到一个称职的管理人员应当具有良好的语言表达潜力、流畅的文字写作潜力、较强的组织领导潜力、灵活的处理问题潜力、有效的对外联系潜力、大型活动的策划及筹备潜力。8d
本文标题:http服务器的设计与实现
链接地址:https://www.777doc.com/doc-5335443 .html