linux运维之DNS、HTTP(Web)
一、 DNS简介:
DNS,全称Domain Name System
(1)DNS的发展历程:
计算机网络诞生时候,通过IP地址访问服务器。IP地址不好记:IP地址.
例如:192.168.1.111
(2)发展到后来 就用hosts,所有的访问服务器的主机hosts都加上解析记录
大家都把解析放到hosts,发生问题。每个人都要改HOSTS
增加网站记录,如何所有知道呢?
(3)发明了DNS:
上网配置了DNS服务器,只要输入域名地址,就会有DNS服务器告诉你IP是啥。
企业上网如何让DNS知道他的域名,企业上网购买域名,默认管理平台(默认的DNS),
解析记录记录。
(4)好处:
自动化解析,不需要分发hosts,不需要客户端做任何配置。
个人客户端只要DNS地址就行。
企业不会自建外网DNS,选择购买域名默认DNS,大企业花钱买DNSPOD,F5智能DNS解析。
服务器端开源工具:bind、powerdns,bind比较流行。
大企业的内网使用DNS,搭建bind。
---------------------------------------------------------------------------------------------------------
(5)简述一下DNS进行域名解析的过程?
答:首先,客户端发出DNS请求翻译IP地址或主机名。DNS服务器在收到客户机的请求后:
1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;
2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息;
3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域名,由顶级查找二级域,
二级域查三级域,直至查到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,
DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。
4)若没有找到,则返回错误信息。
==========================================================
二、 HTTP协议:
(1)关于HTTP的介绍:
HTTP协议,全称 HyperText Transfer Protocol,中文名为超文本传输协议。
HTTP的重要应用之一是WWW服务。
HTTP协议的WWW服务应用的默认端口为80。
https的默认端口为443。
(2)什么是HTTP请求方法
客户端请求Web服务器时,告诉服务器要执行什么具体的动作。
GET 客户端请求指定资源信息,服务器返回指定资源。
浏览网页的过程都是GET方法。
POST 将客户端的数据提交到服务器,例如:注册用户
上传图片、视频,都是POST方法。
DELETE 请求服务器删除Request-URI所标识的资源。
MOVE 请求服务器将指定的页面移至另一个网络地址
HEAD 只请求响应报文中的HTTP首部。
---------------------------------------------------------------------------------------------------------
(3)什么是HTTP状态码?
HTTP状态码(HTTP Status Code)是用来表示web服务器响应http请求状态的数字代码。
200 成功的请求
404 没有你要的东西
403 权限拒绝
500 内部服务器错误
502 坏的网关
(4)不同范围的状态码及对应的作用:
状态码范围 作用:
100-199 用于指定客户端相应的某些动作。
200-299 用于表示请求成功
300-399 用于已经移到的文件并且常被包含在定位头信息中指定新的地址信息。
400-499 用于指出返回客户端的错误
500-599 用于指出服务器端自身的错误
(5)查看:响应头
[root@web01 ~]# curl -I www.baidu.com
HTTP/1.1 200 OK
Accept-Ranges:bytes
==========================================================
三、 HTTP请求报文(Request Message)介绍
HTTP请求报文由请求行、请求头部(header)、空行和请求报文主体几个部分组成。
一般格式:
报文格式 报文信息
请求行 请求方法URL协议版本
请求头 字段名1:值1
字段名2:值2
空行 空白无内容
请求报文主体 GET方法没有请求报文主体,POST方法才有。
对应的解释:
(1)请求行
请求行是请求报文的第一行,用来说明客户端想要做什么。内容由请求方法字段、
URL字段和HTTP协议版本3个字段组成,他们之间用空格分离。
请求方法字段示例 URL字段示例 HTTP协议版本
GET /index.html HTTP/1.1
==========================================================
(2)请求头部
请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号":"分隔。
请求头部的作用是客户端把请求的相关信息告诉给服务器。
例如:
请求头信息 说明
Accept:images/gif, images/jpeg 媒体类型
Host:www.sm.com 主机名
(3)空行
最后一个请求头部信息之后是一个空行,发送回车符和换行符,通知Web服务器空行
以下不会有请求头部的信息了。
(4)请求报文主体
请求报文主体中包括了要发送给web服务器的数据信息:请求报文主体不会应用于HTTP
的GET命令方法,而是应用于POST方法。POST方法适用于需要客户端填写表单的场合。
==========================================================
四、 HTTP 响应报文介绍:
一般格式:
报文格式 报文信息
起始行 协议及版本号,数字状态码 状态信息
响应头部 字段名1:值1
字段名2:值2
空行 空白无内容
响应报文主体 <html>
<head><title>Day</title></head>
<boy>
I am a student
</boy>
</html>
==========================================================
对于解释:
(1)起始行
响应报文的起始行,也叫状态行,用来说明服务器响应客户端请求的状况。
一般为协议及版本号,数字状态码,状态情况。例如:HTTP/1.1 200 OK
(2)响应头部
起始行的后面一般有若干个头部字段,每个头部字段都包含一个名字和一个值,
两者之间用冒号分隔。头部结尾也是一个空行结束。
(3)空行
最后一个响应头部信息之后是一个空行,发送回车符和换行符,通知客户端空行下文
头部信息了。
(4)响应报文主体
响应报文主体中装载了要返回给客户端的数据。这些数据可以是文本,也可以是二进制的
(如图片、视频)
<html>
<head><title>Day</title></head>
<boy>
I am a student
</boy>
</html>
==========================================================
五、HTTP协议请求的工作流程:
HTTP协议属于OSI模型中的模型中的第七层应用层协议,HTTP协议的重要应用
就是www 服务应用,下面就以www服务应用为例介绍HTTP协议的通信原理。
HTTP协议进行通信时,需要有客户端(即终端用户)和服务端(即web服务器),
在web客户端向web服务器发送请求报文之前,先要通TCP/IP 协议在web客户端和
服务端之间建立一个TCP/IP连接。
HTTP协议请求的工作流程如下:
1) 终端客户在Web浏览器地址栏里输入访问地址http://www.baidu.com/index.com。
2) Web浏览器请求DNS服务器把域名http://www.baidu.com 转换成Web服务器的IP地址,
此处的解析过程就是DNS解析的原理流程。
3)Web浏览器将端口号(默认80)从访问地址(URL)中解析出来。
4)Web浏览器通过解析后的IP地址及端口号与Web服务器之间建立一条TCP连接。
5)建立TCP连接后,Web浏览器向Web服务器发送一条HTTP请求报文。
6)Web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文。
7)Web服务器关闭http连接,关闭TCP连接,Web浏览器显示访问的网站内容到屏幕。
==========================================================
六、 URL的相关知识
(1)URL,全称Uniform Resource Location,中文翻译为统一资源定位符
网址 就是URL
(2)URL的格式由以下三部分组成:
第一部分是协议: 例如:http;
第二部分是主机资源服务器IP地址或域名(端口号),例如:www.baidu.com.
第三部分是主机资源的具体地址,如目录和文件名等,例如:xinwen/index.html.
第一部分和第二部分之间用"://"符号隔开,第二部分和第三部分用"/"符号隔开。
第一部分和第二部分是不可缺少的,第三部分可以省略。