一、DNS与域名
1.DNS
- 网络上交互是基于tcp/ip协议进行通信和连接的,每个主机在逻辑上有一个唯一位置标识(IP地址),物理地址为MAC地址
- 由于IP地址是由32位二进制数字标识,不方便记忆。所以,以IP地址为基础发展出了符号化地址来代替解决方案,也就是域名
2.DNS解析方式
- **/etc/hosts:**负责快速解析的文件,包含了IP与主机之间的映射关系,在没有DNS服务器的情况下,只用本地/etc/hosts完成解析和映射,实现快速访问
- **/etc/resolv.conf:**DNS客户端的配置文件,主要用于设置DNS服务器的IP和域名,还包含了主机域名的搜素顺序等。主要是域名解析服务器使用的配置文件。
- **/etc/sysconfig/network-scripts/ifcfg-ens33:**也可以在网卡配置文件中定义DNS1= DNS2=
生效顺序: 1 hosts文件 2 网卡配置文件 3 /etc/resolv.conf
3.域名
3.1 域名的定义
标识一组主机并提供它们的有关信息的树形结构(主要确定了根在哪,就可以确定每个分支)
3.2 域名解析服务器作用
- 保持和维护域名空间的程序
- 响应解析器的请求
**解析端(客户端):**向DNS服务器发出请求的设备
二、Web服务器基础介绍
1.HTML
- HTML叫做超文本标记语言,是一种规范,也是一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容。
- HTML文件可以使用任何能够生成txt文件的文本编辑器来编辑,生成超文本标记语言文件,只用修改文件名后缀为".html"或".htm"即可。
2.网页基本概念
- **网页:**纯文本格式的文件,用html语言编写,在用户的浏览器中被"翻译"成网页形式显示出来
- **网站:**由一个一个页面构成的,是多个网页的结合体
- **主页:**打开网站后出现的第一个网页称为网站主页(或首页)
- **域名:**浏览网页时输入的网址
- **协议:HTTP/HTTPS,**用来传输网页的通信协议(是否加密),是一种通讯/交互的标准/规范,HTTP默认端口号:80(可修改);HTTPS默认端口号:443(可修改)
- **URL:**是一种万维网寻址系统(唯一标识性)例:https://www.baidu.com/
- **URI:例:**https://www.baidu.com/v/popular/all/?spm_id from=333.1007.0.0 从/v/之后就是URI
- **超链接:**将网站中的不同页面连接起来
- **发布:**将制作好的网页上传到服务器,供用户访问
3.Web概述
- Web(World Wide Web)即全球广域网,也称为万维网
- 一种分布式图形信息系统
- 建立在Internet上的一种网络服务
3.1 Web1.0
以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容
这个过程是网站到用户的单向行为
3.2 Web2.0
更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者
加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,
实现了网站与用户双向的交流与参与
4. 静态页面
4.1 静态页面定义
- 静态页面是标准的HTML文件
- 扩展名是.htm、.html 例如文本、图像、声音、Flash动画、客户端脚本和ActiveX控件及Java小程序等
- 是网站建设的基础,早期网站一般都由静态网页制作
- 没有后台数据库、不含程序和不可交互的网页
- 相对更新起来比较麻烦,适用于一般更新较少的展示型网站
4.2 静态网页的特点
- 每个静态网页都有一个固定的URL,且URL以.htm、.html、.shtml等常见形式为后缀,而不含有"?"
- 网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的
- 静态网页的内容相对稳定,容易被搜索引擎检索
- 静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难
- 静态网页的交互性较差,在功能方面有较大的限制
- 页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面
5.动态页面
5.1 动态页面定义
- 网页URL不固定,能通过后台与用户交互
- 在动态网页网址中有一个标志性的符号------"?"
- 常用的语言有PHP、JSP、Python、Ruby等
5.2 动态页面的特点
- **交互性:**网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋
- **自动更新:**无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量
- 当不同的时间,不同的人访问同一网址时会产生不同的页面
三、HTTP协议
1.HTTP协议简介
- HTTP(超文本传输协议HyperText Transfer Protocol)协议是互联网上应用最为广泛的一种网络协议,
- 它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。
- HTTP是应用层上的协议,建立在传输层TCP之上,客户端通过与服务端进行TCP连接,
之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。
2.HTTP协议的基本工作方式
- 建立连接: 客户端通过TCP/IP协议与服务器建立连接。通常情况下,客户端向服务器的80端口(默认HTTP端口)发送连接请求。(客户端和服务端进行tcp连接;三次握手建立)
- 发送请求: 一旦连接建立,客户端通过连接向服务器发送HTTP请求。HTTP请求由一个请求行和多个头部字段组成,请求行包含请求方法(GET、POST、等)、请求的资源路径和协议版本。(客户端通过发送http请求,服务端接受请求后,响应客户端的请求)
- **服务器处理请求:**服务器收到客户端发送的HTTP请求后,根据请求的内容进行相应的处理。(socket接口,通过端口进行通信)
- **服务器返回响应:**服务器对请求进行处理后,会生成一个HTTP响应。HTTP响应由一个响应行、多个头部字段和可选的消息体组成。响应行包含状态码,用于表示服务器对请求的处理结果。(响应到达客户端,解析的过程,用户查看使用访问)
- 传输数据: 一旦服务器生成了HTTP响应,它会通过之前建立的连接将响应返回给客户端。
HTTP响应的消息体包含了请求的资源或者其他需要传输的数据。 - **关闭连接:**一旦响应发送完成,服务器会在HTTP头部字段中指定连接关闭方式。根据HTTP版本和服务器配置,连接可能会被立即关闭(短连接)或者保持持久连接(长连接)。(访问、使用,查看,结束之后,断开连接,四次挥手)
- 解析和显示响应: 客户端收到HTTP响应后,会解析响应内容并在用户界面上显示结果。
这可能包括渲染HTML页面、显示图像、播放视频等。 - 继续请求(可选): 如果客户端需要获取更多资源,它可以继续发送HTTP请求,
或者打开新的连接请求其他资源
3.HTTP 请求格式( GET / POST 方式 )
3.1 GET 方式
- **请求行:**请求的方式、请求的资源路径、请求的版本协议号
- **请求头:**描述信息/标准化信息
常用请求头:
请求头 | 描述 |
---|---|
Accept | 客户端可以接受的数据类型 |
Accept-Language | 客户端可以接受的语言类型 |
Accpect-Encoding | 客户端可以接受的编码格式 |
Connection | 告诉服务器请求连接如何处理 |
Cache-Control | 缓存时间,图片或音频文件保留在本地的缓存时间。 |
User-Agent | 浏览器的信息 |
Host | 表示请求的ip和端口号 |
Keep-Alive | 通知服务器回传数据不要马上关闭,保持一小段的连接 |
Closed | 马上关闭 |
3.2 POST方式
- **请求行:**请求的方式、请求的资源路径、请求的协议的版本号
- 请求头
- **请求体:**就是发送给服务器的数据
请求头 | 描述 |
---|---|
Accept | 客户端可以接受的数据类型 |
Accept-Language | 客户端可以接受的语言类型 |
Referer | 表示请求发起时,浏览器地址栏中的地址 |
User-Agent | 浏览器的信息 |
Content-Type | 发送的数据类型 |
Content-Length | 发送的数据长度 |
4.HTTP状态码
HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码,当浏览器请求某一 URL 时, 服务器根据处理情况返回相应的处理状态。
状态码首位 | 已定义范围 | 分类 |
---|---|---|
1xx | 100-101 | 信息提示 |
2xx | 200-206 | 成功 |
3xx | 300-305 | 重定向 |
4xx | 400-415 | 客户端错误 |
5xx | 500-505 | 服务器错误 |
HTTP 常见状态码:
状态码 | 功能描述 |
---|---|
200 | 一切正常 |
301 | 请求的永久页面跳转 |
304 | 重定向到缓存 |
403 | 禁止访问 |
404 | 请求页面找不到 |
500 | 服务器内部错误 |
502 | 网关失效 |
503 | 服务不可用 |
504 | 网关请求超时 |
四、通信套接字(socket)
-
实现不同主机之间进行通信和数据交换
-
进程之间传输的标志:IP地址和端口号,合称为套接字地址 socket address
4.1 http协议中socket的作用
- 客户机套接字地址定义了一个唯一的客户进程
- 服务器套接字地址定义了一个唯一的服务器进程
4.2 套接字调用的相关接口
|-----------|---------|
| socket() | 创建一个套接字 |
| bind() | 绑定IP和端口 |
| listen() | 监听 |
| accept() | 接收请求 |
| connect() | 请求连接建立 |
| write() | 发送 |
| read() | 接收 |
| close() | 关闭连接 |