Web 基础与Nginx访问统计
目录
Web基础
域名与DNS
域名的结构
网页与HTML
网页概述
HTML 概述
HTML基本标签
1、HTML 语法规则
2、HTML 文件结构
静态网页和动态网页
HTTP协议概述
HTTP方法
HTTP状态码
Nginx访问状态统计
Web基础
域名与DNS
网络是基于 TCP/IP 协议进行通信和连接的,每一台主机都有一个唯一的标识(固 定的 IP地址),用以区别在网络上成千上万个用户和计算机。网络在区分所有与之相 连的网络和主机时,均采用一种唯一、通用的地址格式,即每一个与网络相连接的计算机和服务器都被指派一个独一无二的地址。为了保证网络上每台计算机的 IP 地址的唯 一性,用户必须向特定机构申请注册,分配IP地址。网络中的地址方案分为两套:IP地址系统和域名地址系统。这两套地址系统其实是一一对应的关系。IP地址用二进制数来表示,每个 IP 地址长32 比特,由 4 个小于 256 的数字组成,数字之间用点间隔,例如 100.10.0.1 表示一个 IP地址。由于 IP地址是数字标识,使用时难以记忆和书写,因此在 IP 地址的基础上又发展出一种符号化的地址方案,来代替数字型的 IP地址。每一个符号化的地址都与特定的IP地址对应,这样网络上的资源访问起来就容易得多了。 这个与网络上的数字型 IP地址相对应的字符型地址,就被称为域名。通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易地找到你。
域名的结构
以百度域名为例子,www.baidu.com是由两部分组成,标号"baidu"是这个域名的主体,而后面的标号“com”则是该域名的后缀,代表这是一个com国际域名,是顶级域名,而前面的www是主机名。
根域:指的是根服务器,要用来管理互联网的主目录,全世界只有13台。1个为 主根服务器,放置在美国。其余 12 个均为辅根服务器,其中9个放置在美国欧洲 2个,位于英国和瑞典:亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN 统一管理,负责全球互联网域名根服务器、 域名体系和 IP 地址等的管理。
顶级域:包括组织域和国家/地区域名。域名的最右侧是国家地区域名,国家代码 由两个字母组成的如.cn..uk,.de 和.jp,其中.cn 是中国专用的顶级域名。在国家/地区域名左侧,是组织域名,常见的.com 用于商业机构,.net用于网络组织,.org 用于各种组织包括非盈利组织。
二级域名:在顶级域名之前的域名,在顶级域名前面,它是指域名注册人的网上名称,例如baidu,ibm ,yahoo,microsoft等.
FQDN:是主机名.DNS 后缀,是指主机名加上全路径,全路径中列出了序列中所有 域成员。全域名可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式。
网页与HTML
网页是构成网站的基本元素,是承载各种网站应用的平台。通俗地说,网站就是由 网页组成的。如果只有域名和虚拟主机而没有制作任何网页,那么客户仍旧无法访问这 个网站。因为网页是由 HTML(超文本标记语言)编写的。
网页概述
网页是一个文件,他存放在世界某个角落的某一部计算机中,而这部计算机必须是 与互联网相连的。网页经由网址(URL)来识别与存取,是互联网中的一“页”。
网页可以包括以下内容:
- 文本:文本是网页上最重要的信息载体与交流工具,网页中的主要信息一般都以文 本形式为主。
- 图像:图像元素在网页中具有提供信息并展示直观形象的作用。
- 静态图像:在页面中可能是图片或矢量图形。图片格式通常为GIF、JPEG 或 PNG 等:矢量格式通常为SVG或Flash。
- 动画图像:通常动画为 GIF 和 SVG。
- Flash动画:动画在网页中的作用是有效地吸引访问者更多的注意。
- 声音:声音是多媒体和视频网页重要的组成部分。
- 导航栏:导航栏在网页中是一组超链接,其连接的目的端是网页中重要的
页面。- 交互式表单:表单在网页中通常用来联接数据库并接受访问用户在浏览器端输入的 数据,利用数据库为客户端与服务器端提供更多的互动。
网页相关概念如下:
- 域名:是浏览网页时输入的网址。
- HTTP:用来传输网页的通信协议,使用浏览器访问网址时,在域名前面要加上 http://,表示使用 http 协议传输网页。
- URL:是一种万维网寻址系统,表示网络上资源的位置路径。
- HTML:是编写网页的超文本标记语言。
- 超链接:具备将网站中不同网页链接起来的功能。
- 发布:将制作好的网页上传到服务器供用户访问的过程。
HTML 概述
HTML, 叫做超文本标记语言,是一种规范,也是一种标准,它通过标记符号来标记 要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标 记符,可以告诉浏览器如何显示其中的内容。如:文字如何处理,画面如何安排,图片 如何显示等。浏览器按顺序阅读网页文件,然后根标记符解释和显示其标记的内容, 对书写出错的标记将不指出其错误,且不停止其解释执行过程,开发者只能通过显示效 果来分析出错原因和出错部位。但需要注意的是,不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果。
HTML 文件可以使用任何能够生成 txt 文件的文本编辑器来编辑,生成超文本标记 语言文件,只用修改文件名后缀为”.html”或“.htm” 即可。
HTML基本标签
1、HTML 语法规则
HTML 标签采用双标记符的形式,前后标记符对应,分别表示标记开始和结束,标 记符中间的内容被标签描述。前标记符由“<XXX〉” 表示,结尾标记符多了一个“/”,由“</XXX>”表示。
2、HTML 文件结构
HTML文件最外层由<html></htm>表示,说明该文件是用 HTML 语言描述的。在它里面是并列的头标签(<head>)和内容标签(<body>),最基本的 HTML 文件结构 如下:
<html><head>网页的内容描述信息<head><body>网页显示的内容</body></html>
常用的头标签:
<title> | 定义了文档的标题 |
<base> | 定义了页面链接标签的默认链接地址 |
<link> | 定义了一个文档和外部资源之间的关系 |
<meta> | 定义了 HTML 文档中的元数据 |
<script> | 定义了客户端的脚本文件 |
<style> | 定义了 HTML 文档的样式文件 |
内容标签中常用的标签:
<table> | 定义一个表格 |
<tr> | 定义了表格中的一行 |
<td> | 定义了表格中某一行的一列 |
<a> | 定义了一个超链接 |
<br> | 定义了换行 |
<font> | 定义了字体 |
静态网页和动态网页
静态网页:在网站设计中,纯粹 HTML,格式的网页通常被称为“静态网页”,静态网页是标准的 HTML 文件,它的文件扩展名是html htm,静态网页是网站建设的基础,早期的网 站一般都是由静态网页制作的。静态网页也可以出现各种动态的效果,如.GIF 格式的动画、FLASH、滚动字幕等。这些“动态效果”只是视觉上的。
动态网页:所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着 HTML代码的生成,页面的内容和显示效果就基本上不会发生变化了--除非是修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。动态网页URL的后缀不是.htm、.htm1、.shtml、·xml等静态网页的常见网页制作格式,而是以.aspx.asp、·jsp、·php、·perlcgi 等形式为后缀,并且在动态网页网址中有一个 标志性的符号“?”
静态网页与动态网页的区别:
静态网页 | 动态网页 | |
生成时间 | 提前生成,内容固定,存储在服务器上 | 实时生成,内容根据用户请求、数据库或外部数据源动态生成 |
修改方式 | 需手动修改HTML文件并重新上传 | 通过后台管理系统或数据库更新内容,无需直接修改代码 |
示例 | 企业官网、个人博客(没有交互功能) | 电商平台、社交媒体、在线表单 |
HTTP协议概述
超文本传输协议(HTTP ,HyperText Transfer Protocol)是互联网上应用最广泛的一种网络协议。所有的网页文件都必须遵守这个标准。设计HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。
HTTP 协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求 的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于 MIME 的消 息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错 误编码加上服务器信息、实体元信息以及可能的实体内容。
HTTP方法
HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method)。每条 HTTP 请求报文都包含一个方法,告诉服务器要执行什么动作,包括:获取一个页 面,运行一个网关程序,删除一个文件等。最常用的获取资源的方法是 GET、POST。 HTTP 常用方法。
HTTP方法 | 描述 |
GET | 请求获取 Request-URl 所标识的资源 |
PUT | 请求服务器存储一个资源,并用Request-URI作为其标识 |
DELETE | 请求服务器删除Request-URI所标识的资源 |
POST | 在Request-URI 所标识的资源后附加新的数据 |
GET和POST的比较
GET方法 | POST方法 | |
对数据长度的限制 | URL的长度是受限制的(最大长度是2048个字符) | 无限制 |
缓存 | 可以被缓存 | 不能缓存 |
安全性 | 与POST相比,GET的安全性较差,因为所发送的数据是URL的一部分,在发送密码或其他敏感信息时绝不要使用GET | POST比GET更安全,因为参数不会被保存在浏览器历史或Web服务器日志中 |
历史 | 参数保留在浏览器历史中 | 参数不会保存在浏览器历史中 |
后退按钮/刷新 | 无害 | 数据会被重新提交,浏览器应该告知用户数据会被重新提交 |
书签 | 可收藏为书签 | 不可收藏书签 |
HTTP状态码
HTTP 状态码(HTTP Status Code )是用以表示网页服务器 HTTP 响应状态的3位数字代码,当浏览器请求某一URL时,服务器根据处理情况返回相应的处理状态。HTTP 状态码可以分为五大类,其中 1XX表示信息提示,2XX、3XX表示请求正常,4XX、5XX表示出现异常情况。
状态码首位 | 已定义范围 | 分类 |
1XX | 100-101 | 信息提示 |
2XX | 200-206 | 成功 |
3XX | 300-415 | 重定向 |
4XX | 400-415 | 客户端错误 |
5XX | 500-505 | 服务端错误 |
常见的状态码如下:
消息 | 描述 |
200 OK | 请求成功(其后是对GET和POST请求的应答文档) |
301 Moved Permanently | 请求的永久页面跳转 |
403 Forbidden | 禁止访问该页面 |
404 Not Found | 服务器无法找到被请求的页面 |
500 internal server Error | 内部服务器错误 |
502 Bad Gateway | 无效网关 |
503 service Unavailable | 当前服务不可用 |
504 Gateway Timeout | 网关请求超时 |
Nginx访问状态统计
关闭防火墙、关闭系统内核、关闭开机自启动防火墙
[root@localhost ~]# systemctl stop firewalld #关闭防火墙
[root@localhost ~]# systemctl disable firewalld #关闭开机自启动防火墙
[root@localhost ~]# setenforce 0 #关闭系统内核[root@localhost ~]# yum -y install gcc* pcre-devel zlib-devel openssl-devel #下载nginx所需要的依赖包[root@localhost ~]# tar zxvf nginx-1.24.0.tar.gz #解压缩
[root@localhost ~]#useradd -M -s /sbin/nologin nginx #创建nginx账号,没有家目录,不允许登录系统
[root@localhost ~]#cd nginx-1.24.0[root@localhost nginx-1.24.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_staus_module #安装位置及其他 这个之前有几章文档我写的有注释 感兴趣的可以看一下[root@localhost nginx-1.24.0]# make && make install #编译安装
[root@localhost nginx-1.24.0]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ #创建软连接
[root@localhost nginx-1.24.0]# nginx #启动nginx
[root@localhost nginx-1.24.0]# netstat -anpt | grep nginx #查看nginx是否启动成功[root@localhost nginx-1.24.0]# vim /lib/systemd/system/nginx.service #将nginx添加到系统服务
[Unit]
Description=The nginx Server
After=network.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/sbin/nginx #启动nginx
ExecStop=/usr/local/sbin/nginx -s stop #关闭nginx[Install]
WantedBy=multi-user.target
[root@localhost nginx-1.24.0]# systemctl daemon-reload #重载一下守护进程[root@localhost nginx-1.24.0]# systemctl restart nginx #重启nginx 注:如果这里重启报错就重新启动一下虚拟机 用 reboot命令 重启虚拟机[root@localhost ~]# systemctl start nginx #重启完后 启动nginx就应该好了 问题不大[root@localhost ~]# netstat -anpt |grep nginx #这里可以重新看一下nginx是否启动成功[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf #修改nginx的配置文件server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;}location /status{ #访问位置为/status #只有这三行内容添加上去stub_status on; #打开状态统计功能access_log off; #关闭此位置的日志记录}
[root@localhost ~]# systemctl restart nginx #重启nginx
使用宿主机访问网站就可以访问到了