diff --git a/docs/.vuepress/public/web-server/files/day1-Web工作原理.pdf b/docs/.vuepress/public/web-server/files/day1-Web工作原理.pdf
new file mode 100644
index 0000000..46e4f50
Binary files /dev/null and b/docs/.vuepress/public/web-server/files/day1-Web工作原理.pdf differ
diff --git a/docs/.vuepress/public/web-server/files/day10-conf.json b/docs/.vuepress/public/web-server/files/day10-conf.json
new file mode 100644
index 0000000..b8b42b5
--- /dev/null
+++ b/docs/.vuepress/public/web-server/files/day10-conf.json
@@ -0,0 +1,139 @@
+{
+ "_comment": "Web服务器配置文件,配置后请重启服务器",
+ "default_comment": "Web服务器站点默认配置,站点配置中未配置项将以默认配置为准",
+ "default": {
+ "comment_comment": "默认配置说明(仅做备注用,无实际作用)",
+ "comment": "默认配置",
+ "web_comment": "网站相关配置",
+ "web": {
+ "host_comment": "绑定的IP或域名(字符串或数组)",
+ "host": "127.0.0.1",
+ "port_comment": "绑定的端口号(数字或数组)",
+ "port": 80
+ },
+ "path_comment": "网站目录相关配置",
+ "path": {
+ "websitePath_comment": "网站目录(绝对路径,以 '/' 结尾)",
+ "websitePath": "/www/wwwroot/",
+ "runPath_comment": "网站运行目录(相对路径,相对网站目录,以 '/' 结尾)",
+ "runPath": "./",
+ "accessLogPath_comment": "访问日志目录",
+ "accessLogPath": "/www/wwwlogs/",
+ "errorLogPath_comment": "错误日志目录",
+ "errorLogPath": "/www/wwwlogs/"
+ },
+ "page_comment": "默认文档相关配置",
+ "page": {
+ "defaultPage_comment": "默认文档(数组)",
+ "defaultPage": [
+ "index.html",
+ "index.htm",
+ "default.html",
+ "default.htm"
+ ],
+ "errorPage_comment": "默认错误页(键值对)",
+ "errorPage": {
+ "403": "./403.html",
+ "404": "./404.html",
+ "500": "./500.html",
+ "default": "./error.html"
+ }
+ },
+ "ssl_comment": "SSL证书公钥、私钥配置",
+ "ssl": {
+ "private_comment": "私钥所在目录",
+ "private": "./private.pem",
+ "public_comment": "公钥所在目录",
+ "public": "./public.pem"
+ },
+ "reverseProxy_comment": "反向代理",
+ "reverseProxy": {
+ "state_comment": "'on' / 1 / true 表示开启,'off' / 0 / false 表示关闭",
+ "state": "off",
+ "origin_comment": "代理源配置 [Todo] 待完善",
+ "origin": {
+ "host_comment": "被代理主机(字符串)",
+ "host": "127.0.0.1",
+ "port_comment": "被代理端口号(数字)",
+ "port": 8080
+ }
+ },
+ "logs": {
+ "format_comment": "日志记录默认格式,需以'\r\n'结尾。设计时参考Nginx [Todo] 待完善",
+ "format_comment_options": {
+ "_": "格式(以下是可选参数)",
+ "{remoteAddr}": "发起请求的客户端所在IP地址",
+ "{remoteUser}": "发起请求的客户端用户名称,获取不到则显示为'-'",
+ "{timeLocal}": "用来记录访问时间与时区(依赖服务器本地时间),形如'20/Aug/2017:21:15:19 +0800',获取不到则显示为'-'",
+ "{request}": "记录发起的请求,形如'POST /index.html?page=1 HTTP/1.1'",
+ "{status}": "记录响应状态,比如'200'",
+ "{requestTime}": "记录请求处理时间(以秒为单位、精确到毫秒)。从读取客户端第一个字节开始算起,到发送最后一个字节给客户端的时间间隔",
+ "{upstreamResponseTime}": "记录Web服务器从后端服务获取响应的时间(以秒为单位、精确到毫秒),多个请求的时间以逗号分隔",
+ "{requestLength}": "记录请求长度(包括请求行,请求头,请求体)",
+ "{gzipRatio}": "记录nginx gzip压缩比例,获取不到则显示为'-'",
+ "{bytesSent}": "发送给客户端的字节数",
+ "{bodyBytesSent}": "发送给客户端的响应体字节数",
+ "{connectionRequests}": "单个连接的并发请求数",
+ "{httpReferer}": "记录请求引用页面地址",
+ "{httpUserAgent}": "记录用户代理信息(通常是浏览器信息)",
+ "{httpXForwardedFor}": "当为了承受更大的负载使用反向代理时,web服务器不能获取真实的客户端IP,$remote_addr获取到的是反向代理服务器的ip,这种情况下,代理服务器通常会增加一个叫做x_forwarded_for的信息头,把连接它的真实客户端IP加到这个信息头里,这样就能保证网站的web服务器能获取到真实IP,获取不到则显示为'-'",
+ "{connection}": "连接序列号",
+ "{msec}": "写入日志的时间(以秒为单位、精确到毫秒)",
+ "{pipe}": "如果为管道请求则显示为p,否则显示为'.'"
+ },
+ "format": "{timeLocal}\t{remoteAddr}\t{status}\t{request}\t{httpUserAgent}\r\n"
+ }
+ },
+ "server_comment": "Web服务器服务的站点,每一个站点都作为server数组的一个元素",
+ "server": [
+ {
+ "comment": "网站首页",
+ "web": {
+ "host": "www.only4.work",
+ "port": [
+ 80,
+ 443
+ ]
+ },
+ "ssl": {
+ "private": "./ssl/private.pem",
+ "public": "./ssl/public.pem"
+ },
+ "path": {
+ "path": "/www/wwwroot/www.only4.work",
+ "runPath": "./public/"
+ },
+ "page": {
+ "defaultPage": [
+ "index.php",
+ "index.html",
+ "index.htm",
+ "default.html",
+ "default.htm"
+ ],
+ "errorPage_comment": "默认错误页(键值对)",
+ "errorPage": {
+ "403": "./error.html?code=403",
+ "404": "./error.html?code=404",
+ "500": "./error.html?code=500",
+ "default": "./error.html?code=unknown"
+ }
+ }
+ },
+ {
+ "comment": "网站首页(代理页面)",
+ "web": {
+ "host": "www.only4.work",
+ "port": 888
+ },
+ "reverseProxy": {
+ "state": true,
+ "origin": {
+ "host": "127.0.0.1",
+ "port_comment": "被代理端口号",
+ "port": 80
+ }
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/docs/.vuepress/public/web-server/files/day3-Linux网络编程.pdf b/docs/.vuepress/public/web-server/files/day3-Linux网络编程.pdf
new file mode 100644
index 0000000..045ef8d
Binary files /dev/null and b/docs/.vuepress/public/web-server/files/day3-Linux网络编程.pdf differ
diff --git a/docs/web-server/README.md b/docs/web-server/README.md
new file mode 100644
index 0000000..add60e9
--- /dev/null
+++ b/docs/web-server/README.md
@@ -0,0 +1,556 @@
+---
+sidebarDepth: 2
+---
+
+
+
+# 第一期学习活动
+## 第1天
+### 任务:Web服务器基本工作原理学习
+
+学习资料:
+1、https://www.cnblogs.com/BOHB-yunying/articles/10911192.html
+
+2、《Web工作原理》见附件
+
+
+作业:写一篇小短文,发布在星球,小短文中需要回答几个问题
+
+一个web服务器,最基本的由哪几个核心组件组成?
+
+讲述一下,web服务器从收到一个请求,到完成这个请求的响应,主要流程是什么?
+
+将自己理解的Web服务器工作原理,绘制一张图
+
+附件:[Web工作原理.pdf](/web-server/files/day1-Web工作原理.pdf)
+
+### 作业
+
+看了一下网上搜索出来的感觉大都很专业,我就说说我自己的看法叭
+
+web服务器组件我理解的是包含以下部分
+
+- 配置文件、默认错误页面(像404, 500等错误页模板)
+- 日志记录模块
+- 端口监听模块
+- 业务处理模块
+- 请求响应模块
+- 扩展模块(如反向代理等)
+
+web服务器主要完成以下几件事
+1. 监听到客户端发来的请求
+
+ 涉及到计算机网络结构方面的知识
+
+2. 处理请求
+
+ 1. 取得请求方法(GET, POST, PUT等),解析url,进行路由
+
+ 2. 通过路由知道客户端的请求
+
+ 分成静态、动态两类,静态资源直接返回给客户端就行了,动态资源需要去对应提供服务的业务取得(像php, java, asp.net等等)
+
+3. 将响应返回给用户
+ 响应头中还包含一些扩展信息(像web服务器版本信息,MIME,缓存配置信息,静态资源还会有修改时间)
+
+
+
+
+
+
+
+## 第2天
+### 任务:HTTP协议学习 & F12 & wireshark抓包
+学习资料:
+https://www.ruanyifeng.com/blog/2016/08/http.html
+
+https://zhuanlan.zhihu.com/p/77376952
+
+https://haokan.baidu.com/v?pd=wisenatural&vid=9883591515530208938
+
+作业:写一篇小短文,发布在星球,完成下面这些内容
+
+- HTTP请求主要由哪几个部分组成?
+- HTTP响应主要由哪几部分组成?
+- HTTP头部和数据如何组织在一起?
+- 这是世界上第一个网页:
+http://info.cern.ch/hypertext/WWW/TheProject.html
+
+使用浏览器访问这个URL,并使用wireshark抓包,分析请求和响应。
+
+请求:Method、URI、HTTP版本、Headers
+
+响应:状态码、Headers、HTML内容
+
+
+
+### 作业
+
+#### HTTP请求主要由哪几个部分组成?
+
+**请求报文**
+
+1. **请求行**:请求方法字段、URL字段和HTTP协议版本
+
+ 例如:GET /index.html HTTP/1.1
+
+ get方法将数据拼接在url后面,传递参数受限
+
+ 请求方法:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT
+
+2. **请求头**(key value形式)
+
+ - User-Agent:产生请求的浏览器类型。
+
+ - Accept:客户端可识别的内容类型列表。
+
+ - Host:主机地址
+
+3. **请求数据**
+
+ post方法中,会把数据以key value形式发送请求
+
+4. **空行**
+
+ 发送回车符和换行符,通知服务器以下不再有请求头
+
+
+
+#### HTTP响应主要由哪几部分组成?
+
+**响应报文**
+
+1. **状态行**
+
+2. **消息报头**
+
+**3. 响应正文**
+
+
+
+#### HTTP头部和数据如何组织在一起?
+
+
+
+
+
+#### Wireshark抓包
+
+首先打开Wireshark,访问:http://info.cern.ch/hypertext/WWW/TheProject.html
+
+
+
+使用Wireshark抓包(按照 `ip.src == 188.184.21.108` 过滤,先 `Ctrl+R` 清除记录一次)
+
+
+
+按 `Ctrl+Alt+Shift+T` 追踪TCP流(右键 追踪流、TCP流)
+
+
+
+```
+GET /hypertext/WWW/TheProject.html HTTP/1.1
+Host: info.cern.ch
+User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
+Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
+Accept-Encoding: gzip, deflate
+Connection: keep-alive
+Upgrade-Insecure-Requests: 1
+Pragma: no-cache
+Cache-Control: no-cache
+
+HTTP/1.1 200 OK
+Date: Mon, 29 Nov 2021 12:28:56 GMT
+Server: Apache
+Last-Modified: Thu, 03 Dec 1992 08:37:20 GMT
+ETag: "8a9-291e721905000"
+Accept-Ranges: bytes
+Content-Length: 2217
+Connection: close
+Content-Type: text/html
+
+
+Everything there is online about +W3 is linked directly or indirectly +to this document, including an executive +summary of the project, Mailing lists +, Policy , November's W3 news , +Frequently Asked Questions . +