实验名称:建立名称服务器

一、实验的目的
名称服务器DNS,通过DNS服务器,可以将一台计算机的域名解析成IP地址,也可以将一台
计算机的IP地址解析成对应的域名。这个协议在全世界都广泛使用,理解它的原理有助于我们
对名称服务器的搭建和维护。

二、实验环境

win7 + VMware上一台Linux

三、实验目标

建立 gr.org 域的主名称服务器。解析:
名称                  IP     用途
ns.gr.org     192.168.32.3     名称服务器
www.gr.org     192.168.32.3     正规名
bbs.gr.org     192.168.32.3     别名
mail.gr.org     192.168.32.4     邮件服务器

四、实验过程

1. 配置文件 /etc/named.conf

备份该文件:

# cp /etc/named.conf /etc/named.conf.sample
#cat >> /etc/named.conf

修改该文件,在最后一行之前插入:

zone "gr.org" {
  type master;
  file "gr.org.db";
};
 
zone "32.168.192.in-addr.arpa" {
  type master;
  file "192.168.32.db";
};
存盘退出

2. 创建正向区域文件 /var/named/gr.org.db
# cat > /var/named/gr.org.db
内容为:

$TTL 86400
@ IN SOA ns.gr.org. root.gr.org.(
         20150325 ; serial
         8H   ; refresh
         4H   ; retry
         6W   ; expiry
         1D ) ; minimum
      IN  NS     ns.gr.org.
      IN  MX 10  mail.gr.org.
bbs   IN  CNAME  www.gr.org.
ns    IN  A      192.168.32.3
www   IN  A      192.168.32.3
mail  IN  A      192.168.32.4
存盘退出

3. 创建反向区域文件 /var/named/192.168.32.db
# cat > /var/named/192.168.32.db
内容为:

$TTL 86400
@    IN SOA gr.org. root.gr.org.(
         20140308 ; serial
         8H   ; refresh
         4H   ; retry
         6W   ; expiry
         1D ) ; minimum
     IN  NS   ns.gr.org.
3    IN  PTR  ns.gr.org.
3    IN  PTR  www.gr.org.
4    IN  PTR  mail.gr.org.

4. 查看 named 是否已启动:

# ps -ax | grep named
3479 ?        S      0:00 [named]


启动之:

# service named start
named  ON

5. 客户端配置文件 /etc/resolv.conf内容为:

nameserver 192.168.32.3

6. 测试

# nslookup -sil bbs.gr.org
Server:         192.168.32.3
Address:        192.168.32.3#53

Name:   bbs.gr.org
Address: 192.168.32.3

# host bbs.gr.org
bbs.gr.org has address 192.168.32.3

# nslookup -sil mail.gr.org
Server:         192.168.32.3
Address:        192.168.32.3#53

Name:   mail.gr.org
Address: 192.168.32.4

# nslookup -sil 192.168.32.4
Server:         192.168.32.3
Address:        192.168.32.3#53

4.32.168.192.in-addr.arpa       name = mail.gr.org.

# nslookup -sil 192.168.32.3
Server:         192.168.32.3
Address:        192.168.32.3#53

3.32.168.192.in-addr.arpa       name = ns.gr.org.
3.32.168.192.in-addr.arpa       name = www.gr.org.

7. Windows 客户端测试

禁用本地连接,设置 VMNet8 的 DNS 为 192.168.32.3。

执行命令:

C:>ping www.gr.org

正在 Ping www.gr.org [192.168.32.3] 具有 32 字节的数据:
来自 192.168.32.3 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.32.3 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.32.3 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.32.3 的回复: 字节=32 时间<1ms TTL=64

192.168.32.3 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

C:>ping bbs.gr.org

正在 Ping bbs.gr.org [192.168.32.3] 具有 32 字节的数据:
来自 192.168.32.3 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.32.3 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.32.3 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.32.3 的回复: 字节=32 时间<1ms TTL=64

192.168.32.3 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms


五、实验的体会

体会到平时我们常用的名称服务器协议的搭建,学会了如何配置DNS服务,充分知道平时我们上网用的
域名服务器的工作原理,觉得平时常用的东西好像挺神奇的,结果现在知道了它的原理,感觉到这个协议设计的优越。总结一下;服务器端:配置文件,正向反向配置文件;客户端:resolv.conf文件配置
启动named服务,最后检测!
### 实验名称 使用 Cookie 和 Session 完成登录操作 ### 实验目的 通过本实验,掌握使用 Cookie 和 Session 实现用户登录功能,理解 Cookie 和 Session 在 Web 应用中记录用户状态的原理和作用,包括如何创建、读取、存储和删除相关数据,以及它们之间的协同工作机制。 ### 实验环境 本次实验未提及具体的开发环境,但通常可在常见的 Web 开发环境中进行,如 PHP 搭配 Apache 服务器,数据库可选用 MySQL 等。 ### 实验原理 #### Cookie Cookie 是存储在客户端浏览器中的小段数据。当服务器向客户端发送网页时,会在响应头中包含 Set - Cookie 字段,浏览器会将这些 Cookie 保存下来。之后,浏览器每次向该服务器发送请求时,都会在请求头中包含这些 Cookie 信息,以便服务器识别用户。 #### Session Session 是在服务器端创建的会话机制,用于跟踪用户的状态。每次用户第一次访问并登陆成功后,服务器会创建一个 session 会话(一般存放在内存里),并分配一个唯一的 sessionid。客户端下次请求时,会通过 Cookie 携带这个 sessionid 到服务器服务器根据 sessionid 获取对应的 session 里的信息。每个用户都有一个独立的 session [^3]。 ### 实验步骤 #### 1. 判断 Session 会话是否存在 在实验开始时,首先对 Session 会话是否存在进行判断。若不存在,则建立 Session。在 PHP 中,可以使用如下代码: ```php <?php session_start(); if (!isset($_SESSION)) { // 可以进行一些初始化操作 } ?> ``` #### 2. 登录并向 Session 赋值 用户登录时,服务器验证用户信息。若验证通过,将相关信息存储到 Session 中。示例代码如下: ```php <?php session_start(); // 模拟用户验证 if ($_POST['username'] == 'valid_user' && $_POST['password'] == 'valid_password') { $_SESSION['username'] = $_POST['username']; // 可以存储更多用户信息 header('Location: welcome.php'); } else { echo '登录失败,请检查用户名和密码'; } ?> ``` #### 3. 使用 Session 联合数组读取/存储所有 session 数据 在后续页面中,可以通过 $_SESSION 联合数组读取存储的 session 数据,以验证用户是否已登录。示例代码如下: ```php <?php session_start(); if (isset($_SESSION['username'])) { echo '欢迎,' . $_SESSION['username']; } else { header('Location: login.php'); } ?> ``` #### 4. 退出登录或自动删除 Session 当用户退出登录时,需要删除 Session 数据。另外,当浏览器关闭时,Session 也会自动删除。示例代码如下: ```php <?php session_start(); // 销毁 session session_destroy(); header('Location: login.php'); ?> ``` ### 实验结果 通过上述步骤,成功实现了使用 Cookie 和 Session 完成登录操作的功能。用户登录后,服务器可以通过 Session 记录用户状态,不同页面可以根据 Session 数据判断用户是否已登录。当用户退出登录或关闭浏览器后,Session 数据被清除,用户需要重新登录。 ### 实验总结 本次实验深入理解了 Cookie 和 Session 在 Web 应用中的作用和使用方法。Session 用于在服务器端存储用户的会话信息,而 Cookie 则用于在客户端和服务器之间传递 sessionid,从而实现用户状态的跟踪。两者结合使用,能够有效解决 HTTP 协议无状态的问题,为用户提供更好的交互体验。同时,也掌握了如何在 PHP 中创建、读取、存储和删除 Session 及 Cookie 数据。 ### 实验不足与改进方向 在本次实验中,未对 Cookie 和 Session 的安全性进行深入考虑。在实际应用中,需要对 Cookie 进行加密处理,防止信息泄露;同时,要对 Session 进行过期时间设置,避免长时间占用服务器资源。另外,对于用户登录验证,可以结合数据库进行更严格的验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值