web服务器分析与设计(一)

自己写一个简单的服务器。

面向对象分析与设计第一步:获取需求(基于用例)

功能:1,支持html静态网页,2,支持常用HTTP请求,且容易扩展支持不现请求 3,可以发布站点

补充:至于对动态网页等高级功能,只要确保可扩展性就可以了。

目标系统客户角色:1,上网者 2,浏览器客户端 3,网站发布人 (暂时想到主要的这几个角色)

只要满足了他们的主要需求,这个服务器也就是成功的。

客户发起动作(用例起点):U1:上网者------>打开网站(www.xxx.com)

U2:上网者------>提交表单a

U3:上网者------>下载文件a

U4:上网者------>点击X链接(和第一个貌似是一样的)

浏览器客户端只是上网者的请求代理执行者,和服务器直接交互,所以上面的发起动作,肯定会覆盖浏览器

的动作,所以不必列出。

U5:网站发布人------>打开发布界面

需求复核:U1所代表的执行路径完成后,可以覆盖功能1,功能2

U2覆盖功能2

U3覆盖功能2

U4覆盖功能1,功能2

U5覆盖功能3

结论:所有功能都在用例里得到了体现,只要系统实现这些用例,就完成了这些功能点。

web服务器分析与设计(一),布布扣,bubuko.com

时间: 2024-10-06 06:34:19

web服务器分析与设计(一)的相关文章

web服务器分析与设计(二)

面向对象分析与设计第二步:寻找对象,建立问题域模型 1,用例场景描述 接上一篇中的用例,编写用例场景 U1: 上网者:打开网站(www.xxx.com) 浏览器:连接网站 目标系统:接受连接 检查连接合法性(主要是因为服务端是容易受攻击的,所以需要加入安全检查) 合法,接入连接,等待HTTP请求(不合法看备选流程) 浏览器: 发送GET请求 等待回复 目标系统:收到GET请求 处理GET请求 向浏览器发回请求回复 回复完成,断开连接 备选流程:连接不合法,断开连接. U2 上网者:点击提交按钮

web服务器分析与设计(五)--一些总结

随着年龄与经验的增加,对于软件方面的分析与设计也会有一些新的认识.下面做个近期的总结: 1,关于到底用不用作设计的问题: 在最近两个公司,原有人马是不会作设计(我自己的感觉),也察觉不到作设计的任何冲动.但是工作状态却是:压任务,赶进度,代码大量重复,错误丛生.工作几年来,这种公司司空见惯,但是我愈发不能容忍.所以本人立志要奋发图强,从我做起. 在小项目上,不必要作什么架构设计,分层,常见于一个人的项目.在三个人以上的项目上,就有必要进行模块分解了,尤其是跨平台的模块.分解模块可以从高层上防止代

web服务器分析与设计(三)

面向对象分析与设计第二步:健壮性分析,完善对象 通过上一篇的分析,已经得到了构建系统中最重要的对象-----实体对象,它们封装着构成系统最重要的数据,实体数据是系统的生命. 但是光有实体还系统是运转不起来的,这里通过健壮性分析来发现边界,控制对象,以大致完成系统对象的发现. 健壮性分析同样是以用例为单位.通过对每一个用例的分析,从中发现以及抽象出边界对象,控制对象. 边界对象:接收外部命令:控制对象:程序逻辑:实体对象:重要数据: 从用例1(U1)开始分析: 上网者:打开网站(www.xxx.c

java实现简单web服务器(分析+源代码)

在日常的开发中,我们用过很多开源的web服务器,例如tomcat.apache等等.现在我们自己实现一个简单的web服务器,基本的功能就是用户点击要访问的资源,服务器将资源发送到客户端的浏览器.为了简化操作,这里不考虑资源不存在等异常情况.web服务基于的是HTTP协议,用户在浏览器的地址栏输入要访问的地址,服务器如何得到该地址是个关键.先看下一般的HTTP请求和响应报文的一般格式: HTTP 请求报文 HTTP 响应报文 web服务器获取一个用户的连接时,会初始化一个线程和用户通信,代码如下:

CSAPP Tiny web 服务器源码分析及搭建运行

1. Web基础 web客户端和服务器之间的交互使用的是一个基于文本的应用级协议HTTP(超文本传输协议).一个web客户端(即浏览器)打开一个到服务器的因特网连接,并且请求某些内容.服务器响应所请求的内容,然后关闭连接.浏览器读取这些内容,并把它显示在屏幕上. 对于web客户端和服务器而言,内容是与一个MIME类型相关的字节序列.常见的MIME类型: MIME类型 描述 text/html HTML页面 text/plain 无格式文本 image/gif GIF格式编码的二进制图像 imag

三大WEB服务器对比分析(apache ,lighttpd,nginx)

一.软件介绍(apache  lighttpd  nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点.lighttpd是众多OpenSource轻量级的web server中较为优秀的一个.支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能. Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量. Fastcg

Tiny Web服务器代码分析

Tiny Web服务器代码分析 <深入理解计算机系统>中开发了一个小但是功能齐全的称为Tiny的web服务器,这里是Tiny服务器的源码解析. 1.Tiny的main程序 Tiny是一个迭代服务器,通过命令行中传递来的端口值,调用Open_listenfd()函数打开一个监听套接字,然后Tiny执行无限循环:服务器阻塞在accept,等待监听描述符listenfd上的连接请求,当服务器从accept返回connfd,表明已经与客户端建立起了连接,执行事务,并关闭连接它的那一端,进行下一次循环.

Mini WEB服务器设计

MINI WEB服务器设计 以下是曾经Watchmen一个朋友学习网络编程时设计的一个简单的MiniWEB服务器.以下是其工作计划: 1.查看HTTP/1.0协议 参见:RFC1945, <>第9章 2.配置文件格式定义<详见minim.conf> option=val1, val2,... # 注释文本 #选项集开始 option=val #选项值定义 #选项集结束 3.定义所要实现的功能 主功能: 3.1 日志记录 服务器程序日志:由配置文件minim.conf的全局变量(is

web服务器php-fpm文件分析

php-fpm目前主要又两个分支,分别对应于php-5.2.x的版本和php-5.3.x的版本.在5.2.x的版本中,php-fpm.conf使用的是xml格式,而在新的5.3.x版本中,则是和php.ini一样的配置风格. 1.php-FPM 提供了慢执行日志,可以将执行比较慢的脚本的调用过程 dump 到日志中.PHP 5.3.3 之前设置如下: <value name="request_slowlog_timeout">5s</value> <val