Web详解

一、Web基础与HTTP协议

1. DNS与域名

1.1 域名概述

网络是基于TCP/IP协议进行通信和连接的,每一台主机都有一个唯一的标识(固定的IP地址),用以区别在网络上成千上万个用户和计算机。为了保证网络上每台计算机的IP地址的唯一性,用户必须向特定机构申请注册,分配IP地址。网络中的地址方案分为两套:IP地址系统和域名地址系统。这两套地址系统其实是一一对应的关系。由于IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。

1.2 域名小结

  • 网络上交互是基于TCP/IP协议的,每个主机在逻辑上有一个唯一位置标识(IP地址),物理地址为MAC地址。
  • 为了保证地址唯一性,用户需要向特定机构申请注册,分配IP地址。网络中的地址有两套方案:IP地址系统和域名地址系统。由于IP是由32位二进制数字标识,不方便记忆,所以以IP地址为基础发展出了符号化地址来代替解决方案,这就是域名。

1.3 DNS解析

DNS解析方式包括三种:

1. /etc/hosts

Linux系统中负责快速解析的文件,包含了IP与主机名的映射关系,在没有DNS服务器的情况下,使用本地/etc/hosts完成解析/映射,实现快速访问。

PS:主要用于主机之间(IP和主机名)的映射/解析关系,示例:

192.168.226.128 master
192.168.226.129 node1
192.168.226.130 node2
2. /etc/resolv.conf

DNS客户端配置文件,主要用于设置DNS服务器的IP和域名,还包含了主机域名的搜索顺序等信息,这个文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。

PS:主要用于匹配DNS服务器,示例:

nameserver 114.114.114.114
nameserver 8.8.8.8
nameserver 218.2.135.1
3. /etc/sysconfig/network-scripts/ifcfg-ens33

我们也可以在网卡配置文件中定义DNS1= DNS2=。

生效顺序
  1. hosts文件
  2. 网卡配置文件
  3. resolv.conf文件

1.4 域名

  • 定义:标识一组主机并提供它们的有关信息的树形结构(主要确定了根在哪,就可以确定每个分支)。
  • 域名服务器(分布式,每台主机维护一个部分):
    1. 保持和维护域名空间的程序
    2. 响应解析器的请求
  • 解析端(客户端):向DNS服务器发出请求的设备。
域名空间结构(从右往左看)
  1. 根域:位于域名空间最顶层,一般用一个“.”表示。基础单位,除了根域其他都只有一个上级域,有0或多个子域,同层域不可重复的子域或域名。
  2. 顶级域:一般代表一种类型的组织机构或国家地区(主要有此两种类型构成),如net(网络公司)、com(商业)、org(民间团体组织)、edu(教育)、gov(政府)、mil(军事)、cn(中国)、jp(日本)、hk(中国香港)。
  3. 二级域:用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如.cn顶级域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn等。
  4. 子域:子域名(或子域;英语:Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。
  5. 主机:主机位于域名空间最下层,就是一台具体的计算机,如www、mail、都是具体的计算机名字,可用www.sina.com.cn、mail.sina.com.cn来表示,这种表示方式称为FQDN(完全合格域名),也是这台主机在域名中的全名。
域名注册

域名注册是Internet中用于解决地址对应问题的一种方法,遵循先申请先注册原则。域名注册步骤:

  1. 准备申请资料
  2. 寻找域名注册网站
  3. 查询域名
  4. 正式申请
  5. 申请成功

2. 网页的概念

2.1 网页(HTTP/HTTPS)

  1. 网页基本概念
    1. 网页:纯文本格式文件,编写语言为HTML,在用户的浏览器中被“翻译”成网页形式显示出来。
    2. 网站:由一个一个页面构成的,是多个网页的结合体。主页是打开网站后出现的第一个网页称为网站主页(或首页)。
    3. 域名:浏览网页时输入的网址。
    4. HTTP/HTTPS:用来传输网页的通信协议(是否加密),是一种通讯/交互的标准/规范。
    5. URL:是一种万维网寻址系统。

扩展:URI(统一资源标识),分为URL和URN。

  1. URN:统一资源命名,这个资源叫什么具体的名字。P2P下载使用的磁力链接是URN的一种实现。
  2. URL:统一资源定位符,用于描述某服务器某特定资源位置,资源的具体位置。

2.2 HTML 概述

2.2.1 HTML超文本标记语言

前端包括html、css、javascript。

  1. HTML(超文本标记语言):网页的“源码”,浏览器:“解释和执行”HTML源码的工具。
2.2.2 HTML文档的结构

HTML网页包括头部部分、标题部分和主体部分。网页内容,包括文本、图像等。

示例:

<!DOCTYPE html>
<html>
<head>
<title>我的第一个网页</title>
</head>
<body>
    Hello World!
</body>
</html>
2.2.3 网页基本标签

网页摘要信息的作用:

  • 有利于浏览器解析。
  • 有利于搜索引擎搜索。
2.2.4 标题标签类型

行控制相关标签、范围标签、图像标签、超链接标签、特殊符号。

<title>             定义了文档的标题
<base>              定义了页面链接标签的默认链接地址
<link>              定义了一个文档和外部资源之间的关系
<meta>              定义了 HTML 文档中的元数据
<script>            定义了客户端的脚本文件
<style>             定义了 HTML 文档的样式文件

3.1 Web概述

互联网是网络的网络,是所有类型网络的母集。因特网是世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上,大家把连接在因特网上的计算机都称为主机。

Web(World Wide Web)即全球广域网,也称为万维网,是一种分布式图形信息系统,建立在Internet上的一种网络服务。

万维网并非某种特殊的计算机网络,是一个大规模的、联机式的信息贮藏库,使用链接的方法能非常方便地从因特网上的一个站点访问另一个站点(超链技术),具有提供分布式服务的特点。万维网是一个分布式的超媒体系统,是超文本系统的扩充,基于B/S架构实现。

  1. URL:万维网使用统一资源定位符(Uniform Resource Locator)来标志万维网上的各种文档,并使每个文档在整个因特网的范围内具有唯一的标识符URL。
  2. HTTP:为解决"用什么样的网络协议来实现整个因特网上的万维网文档”这一难题,就要使万维网客户端程序(以浏览器为主,但不限于浏览器)与万维网服务器程序之间的交互遵守严格的协议,即超文本传送协议(HyperText Transfer Protocol)。HTTP是处于应用层的协议,使用TCP传输层协议进行可靠的传送。因此,需要特别提醒的是,万维网是基于

因特网的一种广泛因特网应用系统,且万维网采用的是HTTP(80/TCP)和HTTPS(443/TCP)的传输协议,但因特网还有其他的网络应用系统(如:FTP、SMTP等等)。
3. HTML:为了解决"怎样使不同作者创作的不同风格的万维网文档,都能在因特网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接”这一问题,万维网使用超文本标记语言(HyperText Markup Language),使得万维网页面的设计者可以很方便地用链接从页面的某处链接到因特网的任何一个万维网页面,并且能够在自己的主机品目上将这些页面显示出来。HTML与txt一样,仅仅是一种文档,不同之处在于,这种文档专供于浏览器上为浏览器用户提供统一的界面呈现的统一规约。且具备结构化的特征,这是txt所不具备的强制规定。

3.2 Web1.0 vs Web2.0

Web1.0以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容,这个过程是网站到用户的单向行为。Web1.0以静态单向阅读为主。

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

3.3 静态页面与动态页面

1. 静态页面定义
  1. 静态网页是标准的HTML文件
  2. 扩展名是.htm、.html,例如文本、图像、声音、Flash动画、客户端脚本和ActiveX控件及Java小程序等
  3. 是网站建设的基础,早期网站一般都由静态网页制作
  4. 没有后台数据库、不含程序和不可交互的网页
  5. 相对更新起来比较麻烦,适用于一般更新较少的展示型网站
2. 静态页面特点
  1. 每个静态网页都有一个固定的URL,且URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?”
  2. 网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的
  3. 静态网页的内容相对稳定,容易被搜索引擎检索
  4. 静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难
  5. 静态网页的交互性较差,在功能方面有较大的限制
  6. 页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面
3. 动态页面
  1. 网页URL不固定,能通过后台与用户交互
  2. 在动态网页网址中有一个标志性的符号——“?”
  3. 常用的语言有PHP、JSP、Python、Ruby等
4. 动态页面特点
  1. 交互性:网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋
  2. 自动更新:无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量
  3. 因时因人而变:当不同的时间,不同的人访问同一网址时会产生不同的页面

总结:静态页面由于很多内容都是固定的,在功能方面有很大的限制,所以交互性较差。动态网页则可以实现更多的功能,如用户的登录、注册、查询等。

4. HTTP协议概述

4.1 HTTP协议简介

HTTP(超文本传输协议HyperText Transfer Protocol)协议是互联网上应用最为广泛的一种网络协议,它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。

HTTP/HTTPS是应用层上的协议,建立在传输层TCP之上,客户端通过与服务端进行TCP连接(三次握手),之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。

HTTP是一种无状态(stateless)协议,HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理(存储,保存)。这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量的事务,提高效率。

4.2 cookie和session扩展

4.2.1 cookie

Cookie是服务器发送到用户浏览器并保存在客户端本地的一小块数据,用于会话状态管理、个性化设置和浏览器行为跟踪。

4.2.2 session

Session将数据信息保存在服务器端,通常用于会话管理。

4.2.3 cookie和session区别
  • Cookie通常在客户端生成,Session在服务器端生成。
  • Session存储在服务器,没有容量限制,安全性较高。

4.3 HTTP协议的版本

HTTP/0.9已过时,HTTP/1.0广泛采用,HTTP/1.1引入持久连接,HTTP/2.0支持完全多路复用和头信息压缩机制。

4.4 HTTP请求格式

4.4.1 GET方式

GET请求的资源路径和版本协议号。

4.4.2 POST请求方式

POST请求包含请求头和请求体,用于向服务器发送数据。

4.4.3 GET与POST区别
  • GET请求用于获取数据,参数放在URL中,容易被缓存。
  • POST请求用于传输数据,参数放在请求体中,不会被缓存。
4.4.4 HTTP状态码

当使用浏览器访问某一个URL,会根据处理情况返回相应的处理状态。通常正常的状态码为2xx,3xx(如200)。如果出现异常会返回4xx,5xx(如404)。

状态码首位 已定义范围 分类:
1xx 信息提示
2xx 成功
3xx 重定向
4xx 客户端错误
5xx 服务器错误

生产环境常见的HTTP状态码:
200 OK 请求成功
301 Moved Permanently 请求的永久页面跳转
403 Forbidden 禁止访问该页面
404 Not Found 服务器无法找到被请求的页面
500 Internal Server Error 内部服务器错误
502 Bad Gateway 无效网关
503 Service Unavailable 当前服务不可用
504 Gateway Timeout 网关请求超时

4.5 HTTP协议请求流程分析

用户输入URL(地址链接)客户端获取到端口及主机名后,客户端利用DNS解析域名,首先客户端的浏览器会先找自身的缓存,如果有解析结束,如果没有客户端会去找host文件,如果host文件没有的话,客户端会去找本地的DNS缓存服务器,本地的DNS缓存服务器没有的话,缓存服务器会去找根域,根域没有,会返回一个.com。然后本地缓存服务器会去找顶级域,顶级域没有的话会返回baidu.com。,然后本地缓存服务器会去找二级域,二级域解析完后会返回客户端。客户端解析到IP地址后会通过TCP的三次握手与服务器建立连接。

二、源码编译安装LAMP

1. 什么是Apache

Apache HTTPD Server简称Apache,是Apache软件基金会的一个开源的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。Apache HTTP服务器是一个模块化的服务器,各个功能使用模块化进行插拔。目前支持Windows,Linux,Unix等平台。Apache软件基金会(Apache Software Foundation,简称为ASF),是专门为运作一个开源软件项目的Apache的团体提供支持的非盈利性组织,这个开源软件项目就是Apache项目。HTTPD Server是Apache的开源项目之一。

2. LAMP简介与概述

2.1 LAMP平台概述

LAMP架构指的是Linux操作系统、Apache网站服务器、MySQL数据库服务器和PHP(或Perl、Python)网页编程语言的协同工作系统。

2.2 构建LAMP平台顺序

各组件的安装顺序依次为Linux、Apache、MySQL和PHP。

2.3 编译安装的优点
  • 具有较大的自由度,功能可定制。
  • 可及时获得最新的软件版本。
  • 普遍适用于

大多数Linux版本,便于一直使用。

2.4 各组件的主要作用
  • Linux作为LAMP架构的基础,提供支撑Web站点的操作系统。
  • Apache作为前端,提供网站访问服务。
  • MySQL作为后端,提供数据库存储服务。
  • PHP/Perl/Python作为开发动态网页的编程语言,负责解释动态网页文件并沟通Web服务器和数据库系统。

3. HTML文档的标签

3.1 头标签中常用标签

标签描述
<title>定义了文档的标题
<base>定义了页面链接标签的默认链接地址
<link>定义了一个文档和外部资源之间的关系
<meta>定义了 HTML 文档中的元数据
<script>定义了客户端的脚本文件
<style>定义了 HTML 文档的样式文件

3.2 内容标签中常用标签

标签描述
<table>定义一个表格
<tr>定义了表格中的一行
<td>定义了表格中某一行的一列
<img>定义了一个图像
<a>定义了一个超链接
<p>定义了一行
<br>定义了换行
<font>定义了字体

4. 浏览器的渲染解释

4.1 渲染过程

1. 解析HTML

浏览器逐行解析HTML文档,构建DOM树(Document Object Model)。

2. 解析CSS

解析CSS文件,构建CSSOM树(CSS Object Model)。CSSOM与DOM结合形成渲染树。

3. 计算布局(Reflow)

根据渲染树计算每个元素的大小和位置,生成布局。

4. 绘制(Paint)

将每个节点转换为屏幕上的像素,绘制出页面。
| 定义了换行 |
| <font> | 定义了字体 |

4. 浏览器的渲染解释

4.1 渲染过程

1. 解析HTML

浏览器逐行解析HTML文档,构建DOM树(Document Object Model)。

2. 解析CSS

解析CSS文件,构建CSSOM树(CSS Object Model)。CSSOM与DOM结合形成渲染树。

3. 计算布局(Reflow)

根据渲染树计算每个元素的大小和位置,生成布局。

4. 绘制(Paint)

将每个节点转换为屏幕上的像素,绘制出页面。

  • 18
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值