weblab finished

This commit is contained in:
2026-01-19 22:35:09 +08:00
parent 553a2c7f3a
commit 26236f5590
13 changed files with 11603 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1 @@
This is my official website by HTML5

View File

@@ -0,0 +1,73 @@
<HEADER>
<TITLE>The World Wide Web project</TITLE>
<NEXTID N="55">
</HEADER>
<BODY>
<H1>World Wide Web</H1>The WorldWideWeb (W3) is a wide-area<A
NAME=0 HREF="WhatIs.html">
hypermedia</A> information retrieval
initiative aiming to give universal
access to a large universe of documents.<P>
Everything there is online about
W3 is linked directly or indirectly
to this document, including an <A
NAME=24 HREF="http://info.cern.ch/hypertext/WWW/Summary.html">executive
summary</A> of the project, <A
NAME=29 HREF="http://info.cern.ch/hypertext/WWW/Administration/Mailing/Overview.html">Mailing lists</A>
, <A
NAME=30 HREF="http://info.cern.ch/hypertext/WWW/Policy.html">Policy</A> , November's <A
NAME=34 HREF="http://info.cern.ch/hypertext/WWW/News/9211.html">W3 news</A> ,
<A
NAME=41 HREF="http://info.cern.ch/hypertext/WWW/FAQ/List.html">Frequently Asked Questions</A> .
<DL>
<DT><A
NAME=44 HREF="http://info.cern.ch/hypertext/DataSources/Top.html">What's out there?</A>
<DD> Pointers to the
world's online information,<A
NAME=45 HREF="http://info.cern.ch/hypertext/DataSources/bySubject/Overview.html"> subjects</A>
, <A
NAME=z54 HREF="http://info.cern.ch/hypertext/WWW/DataSources/WWW/Servers.html">W3 servers</A>, etc.
<DT><A
NAME=46 HREF="http://info.cern.ch/hypertext/WWW/Help.html">Help</A>
<DD> on the browser you are using
<DT><A
NAME=13 HREF="http://info.cern.ch/hypertext/WWW/Status.html">Software Products</A>
<DD> A list of W3 project
components and their current state.
(e.g. <A
NAME=27 HREF="http://info.cern.ch/hypertext/WWW/LineMode/Browser.html">Line Mode</A> ,X11 <A
NAME=35 HREF="http://info.cern.ch/hypertext/WWW/Status.html#35">Viola</A> , <A
NAME=26 HREF="http://info.cern.ch/hypertext/WWW/NeXT/WorldWideWeb.html">NeXTStep</A>
, <A
NAME=25 HREF="http://info.cern.ch/hypertext/WWW/Daemon/Overview.html">Servers</A> , <A
NAME=51 HREF="http://info.cern.ch/hypertext/WWW/Tools/Overview.html">Tools</A> ,<A
NAME=53 HREF="MailRobot/Overview.html"> Mail robot</A> ,<A
NAME=52 HREF="http://info.cern.ch/hypertext/WWW/Status.html#57">
Library</A> )
<DT><A
NAME=47 HREF="http://info.cern.ch/hypertext/WWW/Technical.html">Technical</A>
<DD> Details of protocols, formats,
program internals etc
<DT><A
NAME=40 HREF="http://info.cern.ch/hypertext/WWW/Bibliography.html">Bibliography</A>
<DD> Paper documentation
on W3 and references.
<DT><A
NAME=14 HREF="http://info.cern.ch/hypertext/WWW/People.html">People</A>
<DD> A list of some people involved
in the project.
<DT><A
NAME=15 HREF="http://info.cern.ch/hypertext/WWW/History.html">History</A>
<DD> A summary of the history
of the project.
<DT><A
NAME=37 HREF="http://info.cern.ch/hypertext/WWW/Helping.html">How can I help</A> ?
<DD> If you would like
to support the web..
<DT><A
NAME=48 HREF="http://info.cern.ch/hypertext/README.html">Getting code</A>
<DD> Getting the code by<A
NAME=49 HREF="http://info.cern.ch/hypertext/WWW/LineMode/Defaults/Distribution.html">
anonymous FTP</A> , etc.</A>
</DL>
</BODY>

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,226 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CGH0S7 Official</title>
<link rel="icon" href="favicon.ico" type="image/x-icon">
<style>
:root {
--accent: #CEA152 ;
--text: #1f2933;
--muted: #5c6a73;
--bg: #f7f8fa;
}
* { box-sizing: border-box; }
body {
margin: 0;
font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
background: var(--bg);
color: var(--text);
line-height: 1.6;
}
a { color: var(--muted); text-decoration: none; }
a:hover { color: var(--accent); }
.page {
max-width: 820px;
padding: 56px 28px 80px;
margin: 0 auto;
}
header {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 16px;
margin-bottom: 32px;
}
nav {
flex: 1 1 auto;
}
nav ul {
display: flex;
gap: 18px;
padding: 0;
margin: 0;
list-style: none;
}
.brand {
display: flex;
align-items: center;
gap: 12px;
min-width: 220px;
}
.avatar {
width: 56px;
height: 56px;
border-radius: 50%;
object-fit: cover;
}
h1 {
margin: 0;
font-size: 26px;
font-weight: 700;
}
h2 {
margin: 38px 0 12px;
font-size: 18px;
color: var(--accent);
}
p {
margin: 8px 0 14px;
color: var(--muted);
}
.section {
margin-bottom: 18px;
}
.section ul {
margin: 0 0 0 20px;
padding: 0;
color: var(--muted);
}
.section li { margin-bottom: 8px; }
.sub-title {
font-size: 12px;
text-transform: uppercase;
color: var(--muted);
letter-spacing: 0.3px;
margin-bottom: 2px;
}
.card {
display: grid;
grid-template-columns: 1fr auto;
gap: 10px 18px;
align-items: center;
padding: 12px 0;
border-bottom: 1px solid #e5e9ed;
}
.card:last-child { border-bottom: none; }
.badge {
width: 50px;
height: 50px;
background: #e7f6ef;
border-radius: 12px;
display: grid;
place-items: center;
color: var(--accent);
font-weight: 700;
font-size: 12px;
}
.badge img {
object-fit: cover;
width: 100%;
height: 100%;
border-radius: 12px; /* Ensure image also respects border-radius */
}
footer {
margin-top: 48px;
text-align: center;
color: var(--muted);
font-size: 12px;
}
@media (max-width: 640px) {
header { flex-direction: column; align-items: flex-start; }
nav ul { gap: 14px; }
.card { grid-template-columns: 1fr; }
}
</style>
</head>
<body>
<div class="page">
<header>
<nav aria-label="Main">
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#blog">Blog</a></li>
<li><a href="#friends">Friends</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
<div class="brand" id="home">
<img class="avatar" src="avatar.jpg" alt="Avatar">
<div>
<h1>Jason Cheng</h1>
<div class="sub-title">Illusionary White Traveler / Linux Lover</div>
</div>
</div>
</header>
<section class="section" aria-labelledby="about">
<h2 id="about">About</h2>
<p>I'm CGH0S7, an undergraduate student with a strong interest in computer architecture, high-performance computing, the Linux kernel, and the RISC-V instruction set. I love contributing to and learning from the open-source community, and I've been using Linux as my daily driver since 2019. I enjoy exploring the intersection of software and hardware, and I'm always eager to dive deeper into systems-level development.</p>
<p>Find me on <a href="https://github.com/CGH0S7"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" style="vertical-align: text-bottom;"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg> GitHub</a></p>
</section>
<section class="section" aria-labelledby="hobby">
<h2 id="hobby"># Hobby</h2>
<ul>
<li><strong>Coding:</strong> Mostly working with C/C++, but also a little familiar with Python/Rust/Go/Dart/Chisel. Go is my favorite though.</li>
<li><strong>Reading:</strong> Computer science books, novels, and art books/concept art collections from films and animations.</li>
<li><strong>Linux Distros:</strong> Arch Linux enthusiast. Daily drivers: Arch Linux and CachyOS. Servers: Rocky Linux and Debian.</li>
<li><strong>Music:</strong> Favorite composer: Yasunori Mitsuda. Favorite singer: Utada Hikaru. Favorite band: Neck Deep.</li>
<li><strong>Game:</strong> Addicted to JRPG. I sincerely love Xenoblade Chronicles, Fire Emblem and Trails series forever. Also enjoy Monster Hunter and Counter-Strike with friends.</li>
<li><strong>Movie:</strong> The Truman Show, The Lord of the Rings, Interstellar, Decisive Engagement and so on.</li>
</ul>
</section>
<section class="section" aria-labelledby="education">
<h2 id="education"># Education</h2>
<div class="card">
<div>
<div class="sub-title">NUDT · Changsha, China</div>
<strong>National University of Defense Technology</strong>
<p>Sep. 2023 - Jun. 2027</p>
<p>Major in Network Engineering</p>
</div>
<img class="badge" src="college-logo.jpg" alt="College Logo">
</div>
<div class="card">
<div>
<div class="sub-title">University · City</div>
<strong>To Be Determined</strong>
<p>Start Date - End Date</p>
<p>Major / Program to be determined</p>
</div>
<span class="badge">?</span>
</div>
</section>
<section class="section" aria-labelledby="awards">
<h2 id="awards"># Awards & Certifications</h2>
<ul>
<li><strong>ASC 24 First Prize (Rank 5):</strong> Lead developer for the OpenCAEPoro problem</li>
<li><strong>ASC 25 First Prize (Rank 19):</strong> Responsible for cluster operations and performance tuning</li>
<li><strong>NSCSCC 2025 Third Prize (Rank 15):</strong> Spearheaded mid-end optimization and back-end adaptation in the RISC-V compiler design contest</li>
</section>
<section class="section" aria-labelledby="publications">
<h2 id="publications"># Publications</h2>
<p>Stay tuned for upcoming publications.</p>
</section>
<section class="section" aria-labelledby="blog">
<h2 id="blog">Blog</h2>
<p><a href="https://blog.hifuu.ink/">CGH0S7's Blog - The Gensokyo the Gods Loved</a></p>
</section>
<section class="section" aria-labelledby="friends">
<h2 id="friends">Friends</h2>
<ul>
<li><a href="https://hexu.shahe.org/">Hexu - Keep your curiosity</a></li>
<li><a href="https://wingrew.com/">Wingrew - The best student from the Highland to THU</a></li>
</ul>
</section>
<section class="section" aria-labelledby="contact">
<h2 id="contact">Contact</h2>
<ul>
<li><a href="mailto:jasoncheng@hifuu.ink">jasoncheng@hifuu.ink</a></li>
<li><a href="mailto:cjingyu426@gmail.com">cjingyu426@gmail.com</a></li>
<!-- <li><a href="mailto:c_gh0s7@nudt.edu.cn">c_gh0s7@nudt.edu.cn</a></li> -->
</ul>
</section>
<footer>Build with ❤️ · 🐳 2025-2026</footer>
</div>
</body>
</html>

View File

@@ -0,0 +1,153 @@
#let times = "Times LT Pro"
#let times = "Times New Roman"
#let song = (times, "Noto Serif CJK SC")
#let hei = (times, "Noto Sans CJK SC")
#let kai = (times, "Noto Serif CJK SC")
#let xbsong = (times, "Noto Serif CJK SC")
#let fsong = (times, "Noto Serif CJK SC")
#let code = (times, "JetBrains Mono")
#let nudtlabpaper(title: "",
author: "",
id: "",
training_type:"",
grade: "",
major: "",
department: "",
advisor: "",
jobtitle: "",
lab: "",
date: "",
header_str: "",
body) = {
// Set the document's basic properties.
set document(author: author, title: title)
set page(
margin: (left: 30mm, right: 30mm, top: 30mm, bottom: 30mm),
)
// Title row.
v(158pt)
align(center)[
#block(text(weight: 700, size: 30pt, font: hei, tracking: 15pt, "计算机网络"))
]
align(center)[
#block(text(weight: 700, size: 30pt, font: song, tracking: 15pt, "本科实验报告"))
]
v(103pt)
pad(
left: 1em,
right: 1em,
grid(
columns: (80pt, 1fr),
rows: (17pt, auto),
text(weight: 700, size: 16pt, font: song, "实验名称:"),
align(center, text(weight: "regular", size: 16pt, font: song, title)),
text(""),
line(length: 100%)
)
// #block(text(weight: 700, 1.75em, title))
// underline(text(weight: 700, size: 16pt, font: song, title))
)
// Author information.
v(82.5pt)
grid(
columns: (0.25fr, 0.25fr, 0.25fr, 0.25fr),
rows: (15pt, 8pt, 15pt, 8pt, 15pt, 8pt, 15pt, 8pt, 15pt),
text(size: 14pt, font: song, tracking: 10pt, "学员姓名"),
align(center, text(size: 14pt, font: song, author)),
text(size: 14pt, font: song, tracking: 54pt, "学号"),
align(center, text(size: 14pt, font: times, id)),
text(""),
line(length: 100%),
text(""),
line(length: 100%),
text(size: 14pt, font: song, tracking: 9pt, "培养类型"),
align(center, text(size: 14pt, font: song, training_type)),
text(size: 14pt, font: song, tracking: 54pt, "年级"),
align(center, text(size: 14pt, font: times, grade)),
text(""),
line(length: 100%),
text(""),
line(length: 100%),
text(size: 14pt, font: song, tracking: 54pt, "专业"),
align(center, text(size: 14pt, font: song, major)),
text(size: 14pt, font: song, tracking: 9pt, "所属学院"),
align(center, text(size: 14pt, font: song, department)),
text(""),
line(length: 100%),
text(""),
line(length: 100%),
text(size: 14pt, font: song, tracking: 9pt, "指导教员"),
align(center, text(size: 14pt, font: song, advisor)),
text(size: 14pt, font: song, tracking: 54pt, "职称"),
align(center, text(size: 14pt, font: song, jobtitle)),
text(""),
line(length: 100%),
text(""),
line(length: 100%),
text(size: 14pt, font: song, tracking: 20pt, "实验室"),
align(center, text(size: 14pt, font: song, lab)),
text(size: 14pt, font: song, tracking: 9pt, "实验时间"),
align(center, text(size: 14pt, font: song, date)),
text(""),
line(length: 100%),
text(""),
line(length: 100%),
)
v(50.5pt)
align(center, text(font: hei, size: 15pt, "国防科技大学教育训练部制"))
pagebreak()
set page(
margin: (left: 30mm, right: 30mm, top: 30mm, bottom: 30mm),
numbering: "i",
number-align: center,
)
v(14pt)
align(center)[
#block(text(font: hei, size: 14pt, "《本科实验报告》填写说明"))
]
v(14pt)
text("")
par(first-line-indent: 2em, text(font: song, size: 12pt, "实验报告内容编排应符合以下要求:"))
par(first-line-indent: 2em, text(font: fsong, size: 12pt, "1采用A421cm×29.7cm白色复印纸单面黑字。上下左右各侧的页边距均为3cm缺省文档网格字号为小4号中文为宋体英文和阿拉伯数字为Times New Roman每页30行每行36字页脚距边界为2.5cm页码置于页脚、居中采用小5号阿拉伯数字从1开始连续编排封面不编页码。"))
par(first-line-indent: 2em, text(font: fsong, size: 12pt, "2报告正文最多可设四级标题字体均为黑体第一级标题字号为4号其余各级标题为小4号标题序号第一级用“一、”、“二、”……第二级用“”、“” ……第三级用“1.”、“2.” ……第四级用“1”、“2” ……,分别按序连续编排。"))
par(first-line-indent: 2em, text(font: fsong, size: 12pt, "3正文插图、表格中的文字字号均为5号。"))
pagebreak()
set page(
margin: (left: 30mm, right: 30mm, top: 30mm, bottom: 30mm),
numbering: "1",
number-align: center,
)
set heading(numbering: "1.1")
// set text(font: hei, lang: "zh")
show heading: it => box(width: 100%)[
#v(0.50em)
#set text(font: hei)
#counter(heading).display()
// #h(0.5em)
#it.body
]
// Main body.
set par(justify: true)
body
}
#let para(t) = par(first-line-indent: 2em, text(font: song, size: 10.5pt, t))

11000
network/weblab/main.pdf Normal file

File diff suppressed because one or more lines are too long

150
network/weblab/main.typ Normal file
View File

@@ -0,0 +1,150 @@
#import "labtemplate.typ": *
#show: nudtlabpaper.with(title: "网站搭建实验",
author: "程景愉",
id: "202302723005",
training_type: "无军籍",
grade: "2023",
major: "网络工程",
department: "计算机学院",
advisor: "逄德明",
jobtitle: "教授",
lab: "307-211",
date: "2026.01.17",
header_str: "《计算机网络》实验报告",
)
#set page(header: [
#set par(spacing: 6pt)
#align(center)[#text(size: 11pt)[《计算机网络》实验报告]]
#v(-0.3em)
#line(length: 100%, stroke: (thickness: 1pt))
],)
// Global text settings
#set text(font: song, size: 10.5pt)
#set par(first-line-indent: 2em, justify: true, leading: 1em)
// Heading styling
#show heading: it => box(width: 100%)[
#v(0.50em)
#set text(font: hei)
#counter(heading).display()
#h(0.5em)
#it.body
]
#outline(title: "目录", depth: 3, indent: 2em)
#pagebreak()
#outline(
title: [图目录],
target: figure.where(kind: image),
)
#pagebreak()
// List settings
#set enum(indent: 0.5em, body-indent: 0.5em)
// Disable indentation for lists
#show enum: set par(first-line-indent: 0pt)
#show list: set par(first-line-indent: 0pt)
= 实验目的
1. 了解万维网World Wide Web的历史起源与发展通过复刻世界上第一个网站直观感受早期Web技术的形态理解超文本标记语言HTML的基本结构与演变。
2. 掌握现代Web前端开发技术包括HTML5语义化标签、CSS3样式设计及响应式布局能够独立设计并编写符合标准、美观大方的个人主页。
3. 熟悉互联网基础设施的运作机制包括域名系统DNS的注册与解析原理以及Linux服务器的基本操作。
4. 掌握Web服务器软件Caddy的安装与配置实现网站在个人服务器上的部署并配置HTTPS安全访问打通从开发到上线的全流程。
= 实验原理
1. *HTML (HyperText Markup Language)*: 超文本标记语言是构建Web的基础。它使用标签Tags来定义网页的内容结构如标题、段落、链接和图片。实验中涉及从早期的HTML标签到现代HTML5语义化标签的应用。
2. *CSS (Cascading Style Sheets)*: 层叠样式表用于控制网页的外观和布局。通过CSS选择器、盒模型、Flexbox/Grid布局以及媒体查询Media Queries可以将结构与表现分离实现适应不同屏幕尺寸的响应式设计。
3. *Web服务器与HTTP协议*: Web服务器如Caddy运行在服务端监听标准端口80/443接收客户端浏览器发起的HTTP/HTTPS请求并返回请求的资源HTML文件、图片等。Caddy以其自动化的HTTPS配置和简洁的Caddyfile配置语法著称。
4. *DNS (Domain Name System)*: 域名系统将人类易记的域名(如 `hifuu.ink`映射为计算机网络中通讯使用的IP地址使用户能够通过域名便捷地访问服务器。
= 实验环境
- *操作系统*: Linux (个人公网服务器环境使用Rockylinux 9)
- *Web服务器*: Caddy Web Server (支持自动 HTTPS)
- *开发环境*: VS Code, Typst (实验报告排版)
- *前端技术栈*: HTML5, CSS3 (未使用庞大的前端框架,保持轻量级)
- *域名服务商*: 阿里云 (Aliyun)
- *测试工具*: Firefox Developer Edition
= 实验步骤及结果
== 复刻世界上第一个网站https://www.hifuu.ink/TheProject.html
实验的第一部分是致敬历史,复刻由万维网之父 Tim Berners-Lee 创建的世界上第一个网站 "The World Wide Web project"。
我获取了原始的 `TheProject.html` 源代码。代码中包含了许多早期 HTML 的特征,例如 `<NEXTID>` 标签(这是当年 NeXTSTEP 开发环境特有的标签)以及 `<DL>`, `<DT>`, `<DD>` 定义列表的使用。该页面通过简单的超链接结构,构建了一个关于 W3C 项目本身的各种信息的索引。
#figure(
rect(width: 100%, height: 8cm, stroke: (thickness: 1pt, dash: "dashed"))[
#align(center + horizon)[#image("screenshot2.png")]
],
caption: [复刻的世界上第一个网站页面效果],
)
== 搭建个人主页 (https://www.hifuu.ink)
实验的第二部分是设计并实现我的个人主页 "CGH0S7 Official"。主页旨在展示个人简介、技术栈、教育经历及博客链接。
=== 页面结构设计 (HTML5)
`index.html` 中,我采用了 HTML5 的语义化标签来构建页面结构,这有助于代码的可读性和 SEO 优化:
- *`<header>`*: 包含了网站导航 (`<nav>`) 和个人品牌区域 (`.brand`),展示头像与昵称。
- *`<section>`*: 将页面内容划分为不同的逻辑区块,包括关于我 (`About`)、爱好 (`Hobby`)、教育经历 (`Education`)、奖项 (`Awards`)、发表论文 (`Publications`)、博客 (`Blog`) 和联系方式 (`Contact`)。
- *`<footer>`*: 页脚部分,展示版权信息和构建时间。
=== 样式与交互设计 (CSS3)
为了实现现代化的视觉体验,我在 `<style>` 标签中编写了 CSS 样式:
- *CSS 变量*: 定义了 `:root` 变量(如 `--accent: #CEA152`),方便统一管理主题色和字体颜色。
- *Flexbox 与 Grid 布局*: 导航栏使用 Flexbox 实现水平排列;教育经历卡片使用 Grid 布局 (`grid-template-columns: 1fr auto`) 实现文字与校徽的对齐。
- *响应式设计*: 使用 `@media (max-width: 640px)` 媒体查询。当屏幕宽度小于 640px Header 自动调整为垂直排列,卡片布局也切换为单列模式,确保在手机端有良好的浏览体验。
#figure(
rect(width: 100%, height: 10cm, stroke: (thickness: 1pt, dash: "dashed"))[
#align(center + horizon)[#image("screenshot1.png")]
],
caption: [个人主页 (hifuu.ink) PC 端显示效果],
)
#figure(
rect(width: 50%, height: 10cm, stroke: (thickness: 1pt, dash: "dashed"))[
#align(center + horizon)[#image("screenshot3.jpg")]
],
caption: [个人主页移动端响应式布局效果],
)
== 服务器部署与上线
=== 域名购买与解析
为了让个人主页能够在公网访问,我在 *阿里云* 平台购买了域名 `hifuu.ink`
在阿里云的域名控制台中,我添加了一条 A 记录,将主机记录 `@` 指向了我个人 Linux 服务器的公网 IP 地址。等待 DNS 缓存刷新后ping 域名即可解析到正确的 IP。
=== 配置 Caddy Web Server
我选择使用 *Caddy* 作为 Web 服务器,主要看重其配置简单且默认支持自动 HTTPS通过 Let's Encrypt
部署步骤如下:
1. 将编写好的 `index.html``avatar.jpg` 以及复刻的 `hifuu.ink` 文件夹上传至服务器目录。
2. 编写 `Caddyfile` 配置文件,指定站点根目录。
3. 启动 Caddy 服务。Caddy 自动检测到域名配置,并自动完成了 SSL 证书的申请和安装。
= 实验总结
== 心得感悟
本次实验是一次非常有意义的web开发初体验。
首先,通过复刻 Web 诞生之初的网页,我深刻体会到了互联网技术从简陋到繁荣的巨大变迁。几十行简单的 HTML 代码,却是如今万物互联世界的基石。
其次,在编写个人主页的过程中,我不仅巩固了 HTML5 CSS3 的语法,更重要的是学会了如何通过布局和配色来提升用户体验。看到自己设计的页面在不同设备上都能完美展示,这种“所见即所得”的反馈带给我很大的成就感。
最后,服务器部署环节让我走出了“本地开发”的舒适区。从购买域名到配置 Linux 服务器再到看着浏览器地址栏那把代表安全的“小锁”HTTPS亮起我理解了网站上线背后的技术链路。使用 Caddy 服务器极大地简化了配置流程,让我能更专注于内容本身。这次实验不仅不仅让我拥有了一个属于自己的互联网角落,也为后续深入学习计算机网络原理打下了坚实的基础。

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 KiB