web基础

域名概述 2-1
  • 域名的概念:IP 地址不易记忆,域名是互联网络上识别和定位计算机的层次结构式的字符标识,与该计算机的互联网协议 (IP) 地址相对应,用于在数据传输时标识计算机的电子方位,方便人们记忆和输入。

  • 早期使用 Hosts 文件解析域名:存在主机名称重复、主机维护困难等问题。在早期计算机数量较少时,可通过修改本地 hosts 文件(C:\Windows\System32\drivers\etc\hosts)解决域名解析工作,但随着互联网发展,这种方式难以满足海量计算机与域名的对应关系需求。计算机会优先查看本地 HOSTS 文件中是否存在相应的域名解析记录,若存在则返回域名对应的 IP 地址,若不存在则通过 DNS 解析。

  • DNS(Domain Name System 域名系统):是一种可以将域名和 IP 地址相互映射的以层次结构分布的数据库系统,采用递归查询请求的方式来响应用户的查询,为互联网的运行提供关键性的基础服务。目前绝大多数的防火墙和网络都会开放 DNS 服务,DNS 数据包不会被拦截,因此可以基于 DNS 协议建立隐蔽信道,在客户端和服务器之间传输数据。

分布式 / 层次性的 DNS

DNS 系统主要包括域名空间(domain namespace)和资源记录(resource record)、域名服务器(name server)、解析器(resolver)这 3 个组成部分。客户端首先向首选域名服务器查询,首选域名服务器检查本地资源记录,若存在则作权威回答;若不存在,则检查本地缓存,有记录则直接返回结果;若本地资源记录和缓存记录都不存在,则向根域名服务器查询。根域名服务器返回相应顶级域的权威域名服务器的地址,首选域名服务器继续向该顶级权威域名服务器查询,如此迭代查询,直到得到对查询域名的权威回答,保存在本地缓存中并返回给客户端,完成此次查询。

域名概述 2-2
  • 域名空间结构

    • 根域 ".":代表域名命名空间的根。

    • 顶级域:直接处于根域下面的域,如 net、edu、com、gov、mil、org 等,代表一种类型的组织或一些国家,还有国家或地区代码。

    • 组织域(二级域):在顶级域下面,用来表示顶级域以内的一个特定的组织。

    • 国家 / 地区域名:属于顶级域的一种,由基于国际国家代码的两个字母组成,如.cn 代表中国。

    • 二级域名:在顶级域名左侧,通常是组织或公司的名称。

    • FQDN(完全限定域名):主机名.DNS 后缀。

  • 顶级域、二级域、主机名示例 :如www.etiantian.org中,org 是顶级域,etiantian 是二级域,www 是主机名 。

域名注册
  • 域名注册的作用:是 Internet 中用于解决地址对应问题的一种方法。

  • 注册原则:遵循先申请先注册原则。

  • 注册步骤与相关机构:域名注册需要通过域名注册服务机构进行,全球域名由 ICANN(互联网名称与数字地址分配机构)统一管理,具体注册工作由 ICANN 授权各国代理商执行,在中国还有 CNNIC(中国互联网络信息中心)负责相关事务。

网页的概念 3-1
  • 网页:是纯文本格式文件,编写语言为 HTML,在用户的浏览器中被 "翻译" 成网页形式显示出来。

  • 网站:由一个一个页面构成,是多个网页的结合体。

  • 主页:打开网站后出现的第一个网页称为网站主页(或首页)。

网页的概念 3-2
  • 域名:浏览网页时输入的网址,是互联网上某个网站或服务器的易于记忆的地址。

  • HTTP:用来传输网页的通信协议。

  • URL:是一种万维网寻址系统。

网页的概念 3-3
  • HTML:用来编写网页的超文本标记语言。

  • 超链接:是将网站中不同网页链接起来的功能。

  • 发布:将制作好的网页上传到服务器供用户访问的过程。

HTML 概述 2-1
  • HTML 超文本标记语言:是网页的 "源码" 。

  • 浏览器:是 "解释和执行" HTML 源码的工具。

  • 示例代码与展示

复制代码
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 <title>标题</title>
 </head>
 <body>
 <h1>一级标题</h1>
 <h2>二级标题</h2>
 <h3>三级标题</h3>
 <h4>四级标题</h4>
 <h5>五级标题</h5>
 <h6>六级标题</h6>
 </body>
 </html>

显示效果: 标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题

HTML 概述 2-2
  • HTML 文档的结构
复制代码
 <html>
 <head>
 <title>我的第一个网页 </title>
 </head>
 <body >
 Hello World!
 </body>
 </html>
  • HTML 网页:由头部部分、标题部分、主体部分组成,主体部分包含网页内容,包括文本、图像等。
Web 概述
  • Web(World Wide Web):即全球广域网,也称为万维网,是一种分布式图形信息系统,建立在 Internet 上的一种网络服务。
Web1.0 vs Web2.0
  • Web1.0:以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容,这个过程是网站到用户的单向行为。

  • Web2.0:更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者,加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与参与,具有用户分享、以兴趣为聚合点的社群、开放的平台,活跃的用户等特征。

静态网页
  • 定义与扩展名:静态网页是标准的 HTML 文件,扩展名是.htm、.html,包含文本、图像、声音、Flash 动画、客户端脚本和 ActiveX 控件及 Java 小程序等,是网站建设的基础,早期网站一般都由静态网页制作,没有后台数据库、不含程序和不可交互的网页。

  • 适用场景:相对更新起来比较麻烦,适用于一般更新较少的展示型网站。

静态网页特点 2-1
  • 固定 URL:每个静态网页都有一个固定的 URL,且 URL 以.htm、.html、.shtml 等常见形式为后缀,而不含有 "?"。

  • 保存与访问:网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的。

  • 搜索引擎检索:静态网页的内容相对稳定,容易被搜索引擎检索。

静态网页特点 2-2
  • 制作与维护工作量大:没有数据库的支持,在网站制作和维护方面工作量较大,当网站信息量很大时完全依靠静态网页制作方式比较困难。

  • 交互性与功能限制:交互性较差,在功能方面有较大的限制。

  • 浏览速度优势:页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面。

动态网页
  • URL 与交互特点:网页 URL 不固定,能通过后台与用户交互,在动态网页网址中有一个标志性的符号 ------"?"。

  • 常用语言:常用的语言有 PHP、JSP、Python、Ruby 等。

动态网页的特点
  • 交互性:网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后 WEB 发展的大势所趋。

  • 自动更新:无须手动地更新 HTML 文档,便会自动生成新的页面,可以大大节省工作量。

  • 因时因人而变:当不同的时间,不同的人访问同一网址时会产生不同的页面。

小结
  • DNS 服务器作用:将域名解析为 IP 地址,实现域名与 IP 地址的相互映射,帮助用户通过域名访问网络资源。

  • HTML 文档的结构:由头部、标题、主体部分组成。

  • Web1.0 与 Web2.0 区别:Web1.0 是单向的内容提供,Web2.0 强调用户交互和参与。

  • 动态页面与静态页面区别:静态页面 URL 固定、内容稳定但交互性差,动态页面 URL 不固定、可交互且能自动更新和因时因人而变。

HTTP 协议概述
  • HTTP 协议的应用与目的:是互联网上应用最为广泛的一种网络协议,设计这个协议的目的是为了发布和接收 Web 服务器上的 HTML 页面。

  • HTTP 协议的版本:有 HTTP 0.9、HTTP 1.0、HTTP 1.1、HTTP 2.0。

HTTP 方法 2-1
  • HTTP 方法的定义:HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method),每条 HTTP 请求报文都包含一个方法,告诉服务器要执行什么动作,如获取一个 Web 页面、运行一个网关程序、删除一个文件等。
HTTP 方法 2-2
  • 常用方法:常用的方法有 GET 和 POST,还有 PUT、DELETE 等。

  • 方法对比 |HTTP 方法 | 描述 | |---|---| |GET | 请求获取 Request-URI 所标识的资源,发送一个请求来取得服务器上的某一资源,能被缓存,会保存在浏览器的浏览纪录里,有长度的限制(2048 字节),主要用于获取数据,查询的字符串会显示在 URL 中,不安全 | |PUT | 请求服务器存储一个资源,并用 Request-URI 作为其标识,PUT 通常指定了资源的存放位置,而 POST 则没有 | |DELETE | 请求服务器删除 Request-URI 所标识的资源 | |POST | 在 Request-URI 所标识的资源后附加新的数据,用于提交数据,不能被缓存,不会保存在浏览器的浏览纪录里,没有长度限制,查询的字符串不会显示在 URL 中,比较安全 |

GET 方法
  • 获取数据与特点:从指定的服务器上获得数据,GET 请求能被缓存,会保存在浏览器的浏览纪录里,有长度限制(2048 字节),主要用于获取数据,查询的字符串会显示在 URL 中,不安全。
POST 方法
  • 提交数据与特点:提交数据给指定服务器处理,POST 请求不能被缓存,不会保存在浏览器的浏览纪录里,没有长度限制,查询的字符串不会显示在 URL 中,比较安全。
HTTP 状态码
  • 状态码的作用:当使用浏览器访问某一个 URL,会根据处理情况返回相应的处理状态。

  • 状态码分类 | 状态码首位 | 已定义范围 | 分类 | |---|---|---| |1xx|100 - 101 | 信息提示 | |2xx|200 - 206 | 成功 | |3xx|300 - 305 | 重定向 | |4xx|400 - 415 | 客户端错误 | |5xx|500 - 505 | 服务器错误 |

  • 常见状态码示例:200 表示请求成功;404 表示服务器无法找到被请求的页面。

生产环境常见的 HTTP 状态码
消息 描述
200 OK 请求成功(其后是对 GET 和 POST 请求的应答文档)
301 Moved Permanently 请求的永久页面跳转
302 临时重定向
403 Forbidden 禁止访问该页面
404 Not Found 服务器无法找到被请求的页面
500 Internal Server Error 内部服务器错误
502 Bad Gateway 无效网关
503 Service Unavailable 当前服务不可用
504 Gateway Timeout 网关请求超时
HTTP 协议请求流程分析
  1. 用户输入 URL。

  2. 获取端口号(通常为 80)。

  3. 连接到目标主机的指定端口(如连接到 161.58.228.45 的端口 80 )。

  4. 获取主机名。

  5. 通过 DNS 解析主机名获取 IP 地址。

  6. 发送一条 HTTP GET 请求。

  7. 从服务器读取 HTTP 响应。

  8. 关闭连接。

  9. 浏览器显示页面。

#编译安装nginx

安装编译依赖

复制代码
  dnf -y install zlib-devel pcre-devel gcc openssl-devel

创建 Nginx 用户和组(可选)

复制代码
 useradd -r -s /sbin/nologin nginx

下载软件包

复制代码
 cd /tmp
 wget https://nginx.org/download/nginx-1.26.0.tar.gz  # 替换为最新版本号
 tar -zxvf nginx-1.26.0.tar.gz
 cd nginx-1.26.0

创建软连接从而让系统能够运行

复制代码
  ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
 ​
复制代码
 ./configure --prefix=/usr/local/nginx \
 --user=nginx \
 --group=nginx  \
 --with-http_ssl_module \
 --with-http_v2_module \
 --with-http_realip_module \
 --with-http_stub_status_module \
 --with-http_gzip_static_module \
 --with-pcre \
 --with-stream \
 --add-module=./ngx_http_proxy_connect_module
 ​
 ​

参数说明

参数 作用
--prefix 指定 Nginx 安装目录
--user/--group 指定运行 Nginx 的用户和组
--with-http_ssl_module 启用 HTTPS 支持
--with-http_v2_module 启用 HTTP/2 支持
--with-http_realip_module 支持获取客户端真实 IP(如配合反向代理)
--with-http_gzip_static_module 支持预压缩的静态文件(.gz)
--with-stream 启用 TCP/UDP 代理支持(如负载均衡)
--with-debug 启用调试模式(生产环境可移除)

编译并安装

复制代码
 make
 make install

配置系统命令(systemd)

复制代码
  vim /etc/systemd/system/nginx.service

写入下列配置

复制代码
 [Unit]
 Description=my nginx
 After=network.target
 ​
 [Service]
 Type=forking
 PIDFile=/usr/local/nginx/logs/nginx.pid
 ExecStart=/usr/local/sbin/nginx
 ExecStop=/usr/local/sbin/nginx -s stop
 ExecRelaod=/usr/local/sbin/nginx -s reload
 ​
 ​
 [Install]
 WantedBy=multi-user.target
 ​

重载 systemd 并启动服务

systemctl daemon-reload
systemctl start nginx
systemctl enable nginx

相关推荐
gxn_mmf15 分钟前
典籍知识问答模块AI问答bug修改
前端·javascript·后端·bug
说码解字23 分钟前
Kotlin 协程
java·前端·kotlin
_龙小鱼_1 小时前
Vue响应式系统演进与实现解析
前端·vue.js
哎呦你好2 小时前
CSS 选择器入门
开发语言·前端·css·html
云隙阳光i2 小时前
Vue3 中使用 provide/inject 实现跨层级组件传值失败的原因及解决方案
前端·javascript·vue.js
资深前端之路2 小时前
vue+three.js 五彩烟花效果封装+加载字体
前端·javascript·vue.js
alicema11112 小时前
matlab+opencv车道线识别
前端·opencv·matlab
Ryannn_NN2 小时前
avalonia android连接模拟器时报错adb cannot run as root in production builds,没有权限
android·adb·wpf·xamarin
火星牛3 小时前
SPA模式下的es6如何加快宿主页的显示速度
前端·ecmascript·es6