搜档网
当前位置:搜档网 › 实验二 观察一个简单的WEB过程

实验二 观察一个简单的WEB过程

实验二 观察一个简单的WEB过程
实验二 观察一个简单的WEB过程

实验二观察一个简单的WEB过程

一、实验目的和要求

?进一步掌握Ethereal的使用方法

?能对捕获到的包进行较深入的分析

?简单的运用filter设置过滤

?通过Ethereal抓包和分析,了解HTTP协议

二、实验内容

启动Ethereal并设置相应的选项,进行一次简单的WEB访问,观察捕获到的数据包,过滤出HTTP数据包,分析每个分组的细节,了解HTTP的工作过程,查看整个跟踪记录的统计摘要。

三、实验设备

PC机、Ethereal软件、WinpCap软件

四、背景知识

1、HTTP相关概念

万维网 WWW (World Wide Web)并非某种特殊的计算机网络,它是一个大规模的、联机式的信息储藏所。万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。这种访问方式称为“链接”。

在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

HTTP 是面向事务的客户服务器协议。HTTP 1.0 协议是无状态的(stateless)。HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。

HTTP/1.1 协议使用持续连接。万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。目前一些流行的浏览器(例如,IE 6.0)的默认设置就是使用 HTTP/1.1。

2、万维网使用HTTP协议的工作过程

HTTP协议定义了浏览器(即WWW客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。

每个万维网网点都有一个服务器进程,它不断的监听TCP的端口80,以便发现是否有浏览器(即万维网客户)向它发出连接建立的请求。一旦监听到连接建立请求并建立了TCP连接后,浏览器就向万维网服务器发出浏览某个网页的请求,服务器接着就返回所请求的页面作为响应。最后,TCP连接就被释放了。

图1 使用HTTP协议的万维网工作图

在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则,这些格式和规则就是超文本传输协议HTTP。

3、HTTP的报文结构

HTTP有两类报文:

◆请求报文——从客户向服务器发送请求报文。

◆响应报文——从服务器到客户的回答。

由于HTTP是面向文本的(text-oriented),因此在报文中的每一个字段都是一些ASCII码串,因而各个字段的长度都是不确定的。

不论是请求报文或响应报文都由三个部分组成,即开始行、首部行和实体主体。可以看出,两种报文格式的区别就在开始行不同。

一、HTTP请求报文和特点

图2 HTTP请求报文格式

在请求报文中,开始行就是请求行。

(1)“方法”是面向对象技术中使用的专门名词。所谓“方法”就是对所请求的对象进行的操作,

因此这些方法实际上也就是一些命令。因此,请求报文的类型是由它所采用的方法决定的。

HTTP 请求报文的一些方法:

(2)“URL”是所请求的资源的 URL。

(3)“版本”是 HTTP 的版本。

下面是一个请求报文的例子:

GET /chn/YXSZ/index.htm HTTP/1.1 {请求行使用了相对URL}

Host: https://www.sodocs.net/doc/2317588764.html, {此行是首部行的开始,给出主机的域名}

Connection: close {告诉服务器发送完请求的文档后就可以释放连接} User-Agent: Mozilla/5.0 {表明用户道理是使用Netscape浏览器}

Accept-Language: cn {表示用户希望优先得到中文版本的文档}

二、HTTP的响应报文和特点

图3 HTTP响应报文格式

每一个请求报文发送后,都能收到一个响应报文。响应报文的开始行是状态行。

状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。

(1)状态码都是三位数字

1xx 表示通知信息的,如请求收到了或正在进行处理。

2xx 表示成功,如接受或知道了。

3xx 表示重定向,表示要完成请求还必须采取进一步的行动。

4xx 表示客户的差错,如请求中有错误的语法或不能完成。

5xx 表示服务器的差错,如服务器失效无法完成请求。

下面的三种状态行在响应报文里是经常见到的:

HTTP/1.1 202 Accepted {接受}

HTTP/1.1 400 Bad Request {错误的请求}

HTTP/1.1 404 Not Found {找不到}

五、实验步骤

1. 首先关闭所有的应用程序,打开浏览器,点击菜单栏上的“工具”,点击“Internet选项”,清除缓存的临时文件,那么捕获的数据包更加单纯,利于分析。

2.打开 Ethereal 软件,最初的时候窗口中都没有数据,因为 Ethereal 还没有开始捕获包。

3.开始准备捕捉,首先设置好Caption Options(具体设置参考实验一),点击“start”开始捕获。

图4 Caption Options设置

4.打开你的浏览器,在浏览器中输入如下的 URL 让它下载一个页面在你的浏览器中显示:

https://www.sodocs.net/doc/2317588764.html, (这个URL可以是任何的,你完全可以事先在网络上找一个网页,记下URL)为了显示这个页面,你的浏览器将和的 HTTP服务器进行联系,和服务器进行 HTTP消息的交换以下载这个页面,包含这些 HTTP消息的以太网帧将会被 Ethereal 捕获。

5. 你的浏览器显示了这个页面后,在 Ethereal 捕获窗口中按下stop 按钮来停止包捕获,Ethereal 的主窗口将会显示所捕获的包。现在,你拥有了刚才在你的电脑通过网络进行交换的协议消息。HTTP 消息和https://www.sodocs.net/doc/2317588764.html, Web服务器之间进行交换也在包捕获列表中出现,但是同样也有其他类型的包。

恭喜你!现在,你已经完成了一次成功的协议数据捕获。

图5 捕获主界面

6. 在 Ethereal 主窗口的顶部的 Filter 中,输入“http”,然后选择 Apply,这样只有 HTTP

消息会被显示在包列表窗口。

图6 过滤出HTTP数据包

如上图中,只有protocol(协议)为HTTP的数据包显示在窗口中,便于观察。

7. 在包列表窗口中选择第一个 HTTP消息,它应该是一个 HTTP GET消息,是由你的电脑发送给

https://www.sodocs.net/doc/2317588764.html,的 HTTP服务器的。

图7 HTTP中的GET消息

8.当你选中 HTTP GET消息后,以太网帧、IP数据包、TCP段以及 HTTP消息的头部将会显示在协议框中。

下图中标识了各个部分的名称,并选择IP协议的头部进行分析,可以看到Ethereal能分析的很清楚。

我们在协议框中选择Internet Protocol 层的时候,在原始框中显示的原始分组的IP首部会突出显示。在本例中,“45 00 01 cb 25 3f 40 00 80 06 31 70 c0 a8 01 64 ca 6c 16 05”在协议框中转化为IP信息显示出来,就凭这种层次的细节,已经足以让我们感叹Ethereal的GUI显示能力了。

图8 HTTP数据包的IP协议首部分析

9. 我们还可以展开“Hypertext Transfer Protocol”,分析应用层的超文本传输协议(http协议)。

图9 HTTP数据包的应用层协议首部分析

10. 查看技巧

点击“列表框”中的“Protocol”列表项,列表框内会按协议分组重新排列,有时候这种方式很适合我们观察一种协议。

图10 协议分类显示

11. 捕获数据包的统计摘要

可以通过“Statistic(统计)”菜单中的“Summary”来观察该跟踪记录的概要。

它将为你列出很多有用的统计数据,比如通信的总字节数、通信的频率、分组的平均大小。

图11 统计摘要

你也可以使用“Statistic(统计)”菜单中的“Protocol Hierarchy(协议层次)”,以及“Analyze (分析)”菜单中的其他工具进行分析。

图12 Protocol Hierarchy分析

六、思考题

Q1. 找到第一个 HTTP请求数据包,观察 HTTP 逐层封装的结构关系,记录各层的协议名称。

Q2. 从发送 HTTP GET 消息一直到接收到 HTTP回复的 OK,持续的时间是多久?

Q3. https://www.sodocs.net/doc/2317588764.html, 的IP地址是多少?你的电脑 IP地址是多少?

Q4. 找到回应HTTP的请求的那个包,记录你认为有用的信息?

Q5. 导出这两个 HTTP消息,保存下来。

操作系统实验报告一

重庆大学 学生实验报告 实验课程名称操作系统原理 开课实验室DS1501 学院软件学院年级2013专业班软件工程2 班学生姓名胡其友学号20131802 开课时间2015至2016学年第一学期 总成绩 教师签名洪明坚 软件学院制

《操作系统原理》实验报告 开课实验室:年月日学院软件学院年级、专业、班2013级软件工 程2班 姓名胡其友成绩 课程名称操作系统原理 实验项目 名称 指导教师洪明坚 教师 评语教师签名:洪明坚年月日 1.实验目的: ?进入实验环境 –双击expenv/setvars.bat ?检出(checkout)EPOS的源代码 –svn checkout https://www.sodocs.net/doc/2317588764.html,/svn/epos ?编译及运行 –cd epos/app –make run ?清除所有的临时文件 –make clean ?调试 –make debug ?在“Bochs Enhanced Debugger”中,输入“quit”退出调试 –调试指令,请看附录A 2.实验内容: ?编写系统调用“time_t time(time_t *loc)” –功能描述 ?返回从格林尼治时间1970年1月1日午夜起所经过的秒数。如果指针loc 非NULL,则返回值也被填到loc所指向的内存位置 –数据类型time_t其实就是long ?typedef long time_t; 3.实验步骤: ?Kernel space –K1、在machdep.c中,编写系统调用的实现函数“time_t sys_time()”,计算用户秒数。需要用到 ?变量g_startup_time,它记录了EPOS启动时,距离格林尼治时间1970年1午夜的秒数 ?变量g_timer_ticks

web前端开发技术实验报告 实验三

长春大学 20 15 —2016学年第二学期Web前端开发技术课程 实验报告 学院:计算机科学技术专业:软件工程 班级:软件15402

学号:041440210 姓名:王悦 任课教师:车娜 实验三 CSS网页布局 一、实验目的 1.掌握CSS盒子模型的概念,能够灵活运用盒子模型布局页面; 2.掌握盒子模型相关属性,能够使用它们熟练地控制网页元素; 3.理解块元素与行内元素的区别,能够对它们进行转换。 二、内容及要求 运用盒子模型的相关属性实现网页弹出框效果,满足如下要求: 1.网页弹出框由上面的标题和下面的宣传内容两部分组成; 2.标题通过h2定义; 3.在段落文本中内容部分由h3和p标记进行定义; 4.应用

标记、标记、边框属性、背景属性等设计页面结构效果。 三、实验原理 盒子模型:把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。
标记:是一个区块容器标记,可以将网页分割为独立的、不同的部分,以实现网页的规划和布局。 边框属性:使用border-style、border-width、border-color等属性可以实现丰富的边框效果。 padding属性:设置内边距,即元素内容与边框之间的距离,也常常称为内填充。 margin属性:设置外边距,即元素边框与相邻元素之间的距离。 background-color:设置网页元素的背景颜色,默认值为transparent,即背景透明,这时子元素会显示其父元素的背景。 background-image属性:将图像作为网页元素的背景。 标记:行内元素。之间只能包含文本和各种行内标记,如加粗标记、倾斜标记等,中还可以嵌套多层

WEB开发技术实验报告

实验一JSP开发环境构建 实验目的:了解动态页面技术及B/S系统 掌握开发环境的构建 理解Eclipse开发WEB应用 实验内容: 实训项目一:安装JDK并配置环境变量 请阐述配置环境变量的方法: 实训项目二:安装TOMCAT并配置Server.xml修改端口号为8090 问题一:如何测试TOMCAT是否已经成功启动? 问题二:在浏览器地址栏输入什么地址可以访问到TOMCA T的测试页? 请阐述配置Server.xml修改端口号为8090基本实验步骤: 实训项目三:应用Eclipse建立项目并浏览一个JSP页面 请阐述应用Eclipse建立项目并浏览一个JSP页面基本实验步骤: 实验心得:(遇到了哪些问题,如何解决的,有那些体会) 实验二JSP语法 实验目的:了解JSP程序的组成元素 掌握JSP中使用JA V A程序片段的方法 实验内容: 实训项目一:编写一个JSP页面输出26个小写英文字母表 实训项目二:编写页面实现九九乘法表 实训项目三:利用成员变量被所有客户共享这一性质,实现一个简单的计数器 实训项目四:使用JA V A表达式输出系统当前时间 实训项目五:编写程序shijian2_9.jsp和computer.jsp两个页面,在第一个页面中使用include动作标记动态包含文件computer.jsp,并向它传递一个矩形的长和宽,computer.jsp 收到参数后,计算矩形的面积,并显示结果。 实训项目六:编写3个JSP页面:main.jsp,first.jsp和second.jsp,将3个JSP文件保存在同一个WEB工程中,main.jsp使用include动作标记加载first.jsp和second.jsp页面。First.jsp 页面可以画一张表格,second.jsp页面可以计算两个正整数的最大公约数。当first.jsp被加载时,获取main.jsp页面include动作标记的param子标记提供的表格行数和列数,当second.jsp 被加载时,获取main.jsp页面include动作标记的param子标记提供的两个正整数的值。 要求:上机编程完成上述实训项目,上机演示给教师检查,从中挑选三个程序的核心代码写在实训报告上 实验核心代码:

操作系统实验题目2

实验报告撰写要求实验报告要求具有以下内容: 一、实验目的 二、实验内容 三、实验要求 四、算法流程图 五、给出测试数据及运行结果 六、实验体会或对改进实验的建议

实验1 进程调度(2学时) 一、实验目的 通过实验加强对进程调度算法的理解和掌握。 二、实验内容 编写程序实现基于优先级的时间片轮转调度算法。 三、实验要求 1、假定系统有5个进程,每个进程用一个进程控制块PCB来代表,进程控制块的结构如下图1.1所示: 图1.1 其中: 进程名:作为进程的标识,假设五个进程的进程名分别为p1,p2,p3,

p4,p5。 指针:进程按顺序排成循环链表,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址。 要求运行时间:假设进程需要运行的单位时间数。 已运行时间:假设进程已经运行的单位时间数,初值为0。 状态:可假设有两种状态,就绪状态和结束状态。进程的初始状态都为就绪状态。 2、每次运行所设计的处理器调度程序调度进程之前,为每个进程随机确定它的要求运行时间。 3、此程序是模拟处理器调度,因此,被选中的进程并不实际启动运行,而是执行 已运行时间+1 来模拟进程的一次运行,表示进程已经运行过一个单位时间。 4、在所设计的程序中应有显示语句,能显示每次被选中的进程名以及运行一次后进程队列的变化。

实验2 银行家算法(2学时) 一、实验目的 理解银行家算法,掌握进程安全性检查的方法及资源分配的方法。 二、实验内容 编写程序实现银行家算法,并验证程序的正确性。 三、实验要求 编制模拟银行家算法的程序,并以下面给出的例子验证所编写的程序的正确性。 例子:某系统有A、B、C、D 4类资源共5个进程(P0、P1、P2、P3、P4)共享,各进程对资源的需求和分配情况如下表所示。 现在系统中A、B、C、D 4类资源分别还剩1、5、2、0个,请按

操作系统实验报告-实验二

操作系统实验报告——实验二:C编程环境 实验目的 1.熟悉Linux下C程序设计的环境; 2.对系统调用有初步了解。 实验内容 1.Linux下C语言程序的开发过程 a、在用户主目录下用vi编辑C语言源程序(源程序已附后),如:$vi hello.c。 b、用gcc编译C语言源程序:$gcc ./hello.c -o example 这里gcc是Linux下的C语言程序编译器(GNU C Compiler),./hello.c表示待编译的源文件是当前工作目录下的hello.c,-o example表示编译后产生的目标代码文件名为example。 c、若编译不正确,则进入vi修改源程序,否则,运行目标代码:$./example 。注意: 这只是gcc最基本的用法,其他常用选项有:-c , -S , -O , -O2, -g 等。 2.编辑、调试下面c语言程序,说明该程序的功能。 #include #include int main() { int n,a[200],carry,temp,i,j,digit = 1; printf("Please input n:"); scanf("%d",&n); a[0] = 1; for( i = 2; i <= n; ++i) { for( j = 1, carry = 0; j <= digit; ++j) { temp = a[j-1] * i + carry; a[j-1] = temp % 10; carry = temp / 10; } while(carry) { a[++digit-1] = carry % 10; carry /= 10; } } printf("Result is:\n%d ! = ",n); for( i = digit; i >=1; --i) { printf("%d",a[i-1]); }

Web网页设计实验报告

WEB系统开发 综合实验报告 题目红尘客栈网上订房页面 专业计算机科学与技术(信息技术及应用) 班级计信2班 学生蒋波涛 重庆交通大学 2013年

目录 一、设计目的 (3) 二、设计题目 (3) 三、结构设计 (3) 四、技术分析 (4) 五、设计过程 (7) 六、实验心得 (10) 七、实验总结 (11)

一、设计目的 在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。因此网站建设在Internet 应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。我们当代大学生更是离不开网络给我们带来的好处与便利.但是,我们成天浏览的网站网页到底是如何制作的呢?我想这一点很多同学都没有去深究过.所以,这学期我选择了”web网页设计”这门课, 本课程的设计目的是通过实践使同学们经历网页制作的全过程. 通过设计达到掌握网页设计、制作的技巧。 了解和熟悉网页设计的基础知识和实现技巧。根据题目的要求,给出网页设计方案,可以按要求,利用合适图文素材设计制作符合要求的网页设计作品。 熟练掌握Photoshop cs3、Dreamweaver cs等软件的的操作和应用。增强动手实践能力,进一步加强自身综合素质。学会和团队配合,逐渐培养做一个完整项目的能力。 二、设计题目 《红尘客栈》 三、结构设计 选定主题,确定题目之后,在做整个网站之前对网站进行需求分析。首先,做好需求调研。调研方式主要是上网查阅资料,在图书馆里翻阅相关书籍。 然后,调研结束之后对整个网站进行功能描述,并对网站进行总体规划,接着逐步细化。 我们选做的主题是个人主页,并且选定题目为“红尘客栈”,其目的是做一个简单的网站,介绍酒店概况,提供一定的资讯信息。 四、技术分析 (一)建立布局 在这次的网页设计中用到大量的布局,所以怎么样建立布局是关键。Dreamweaver cs3是大多数人设计网页的称手兵器,也是众多入门者的捷径。特别是其在布局方面的出色表现,更受青睐。大家都知道,没有表格的帮助,很难组织出一个协调合理的页面。 1.点击“ALT+F6”键,进入布局模式,插入布局表格。建立一个大概的布局。 2.使用背景图片:选中该项,按浏览可以插入一幅准备好的图片作为表格的背景,因为图片是以平铺的形式作为表格背景,所以表格大小和图片尺寸都要控制好。 (二)网页中的图像

操作系统实验2

武汉工程大学计算机科学与工程学院 《操作系统》实验报告 专业班级13计工01班实验地点计工403机房学生学号1305120610 指导教师张立 学生姓名李敏实验时间2014-10-19 /2014- 10-26 实验项目实验二、创建线程及线程通信 实验类别操作性()验证性()设计性(√)综合性()其它实 验 目的及要求(1)熟悉Windows中的线程及进程的创建 (2)掌握利用Windows中的同步机制实现线程同步及通信。 成绩评定表 类别评分标准分值得分合计 上机表现积极出勤、遵守纪律 主动完成实验设计任务 30分 实验报告及时递交、填写规范 内容完整、体现收获 70分 说明: 评阅教师:张立 日期: 2015 年 11 月 1 日

实验内容 一、实验内容 要求:创建线程,利用互斥实现线程共享变量通信。 示例程序:Thread.exe 简要说明: 1、点“创建线程”按钮,创建两个线程,一个线程不断对一个变量加1, 结果显示在第一个文本框中。另一个线程不断对另一个变量减1,结果显示在第二个文本框中。这两个线程之间没有交互,仅用于演示线程的创建。 2、演示线程互斥,点“线程互斥”按钮,创建两个线程,一个线程不断循 环,每次循环对共享变量x做100次加1操作(这100次加1操作作为一个临界区CSa),另一个线程不断循环,每次循环对共享变量x做100次减1操作(这100次减1操作作为一个临界区CSb),结果显示在第三个文本框中。可以看到结果是从0到100,然后又从100回到0。可见CSa 和CSb两个临界区是互斥的。 3、除了没有互斥,其它同2,结果显示在第四个文本框中。可见CSa和CSb 两个临界区的执行是有交叉的,CSa的执行可能被CSb打断,CSb的执行也可能被CSa打断 二、源代码 UINT ThreadA(LPVOID pParam) { CThreadDlg * pParent=(CThreadDlg *)pParam; pParent->DoThreadA(); return 0; } UINT ThreadB(LPVOID pParam) { CThreadDlg * pParent=(CThreadDlg *)pParam; pParent->DoThreadB(); return 0; } UINT ThreadC(LPVOID pParam) { CThreadDlg * pParent=(CThreadDlg *)pParam; pParent->DoThreadC(); return 0; } UINT ThreadD(LPVOID pParam) { CThreadDlg * pParent=(CThreadDlg *)pParam; pParent->DoThreadD(); return 0;

操作系统lab2实验报告

HUNAN UNIVERSITY 操作系统实验报告

目录 一、内容 (3) 二、目的 (3) 三、实验设计思想和练习题 (3) 练习0:填写已有实验 (3) 练习1:实现 first-fit 连续物理内存分配算法(需要编程) (3) 练习2:实现寻找虚拟地址对应的页表项(需要编程) (8) 练习3:释放某虚地址所在的页并取消对应二级页表项的映射(需要编程) (11) 运行结果 (13) 四、实验体会 (13)

一、内容 本次实验包含三个部分。首先了解如何发现系统中的物理内存;然后了解如何建立对物理内存的初步管理,即了解连续物理内存管理;最后了解页表相关的操作,即如何建立页表来实现虚拟内存到物理内存之间的映射,对段页式内存管理机制有一个比较全面的了解。 二、目的 1.理解基于段页式内存地址的转换机制; 2.理解页表的建立和使用方法; 3.理解物理内存的管理方法。 三、实验设计思想和练习题 练习0:填写已有实验 使用eclipse中的diff/merge工具将实验1的代码填入本实验中代码中有“LAB1”的注释相应部分。 练习1:实现 first-fit 连续物理内存分配算法(需要编程) 在实现first fit 内存分配算法的回收函数时,要考虑地址连续的空闲块之间的合并操作。提示:在建立空闲页块链表时,需要按照空闲页块起始地址来排序,形成一个有序的链表。可能会修改default_pmm.c 中的default_init,default_init_memmap,default_alloc_pages, default_free_pages等相关函数。请仔细查看和理解default_pmm.c中的注释。 请在实验报告中简要说明你的设计实现过程。请回答如下问题: 你的first fit算法是否有进一步的改进空间。 解答: 分析思路: (1)数据结构: A.每个物理页利用一个Page结构体表示,查看kern/mm/memlayout.h包括:

广州大学web实验_实验二

广州大学学生实验报告 一、实验目的 使用脚本语言进行网页设计 二、实验设备 Tomcat windows10 eclipse 三、实验内容 1.简易计算器的制作 在一个网页中,使用JavaScript编写程序实现的计算器功能,可以实现浮点数的加法,减法,乘法,除法运算功能。 2.控制网页字体的大小 在一个网页中,有三个按钮是小,中,大,使用JavaScript编写程序实现当点击一个按钮时,网页就按照相应的字体大小显示网页的文字。 四、实验程序 1.简易计算器的制作 简易计算器