Web基础与HTTP协议
域名概念
1、网络是基于 TCP/IP 协议进行通讯和连接的,每一台主机都有一个唯一的标识(固定的IP地址),用以区别在网络上成千上万个用户和计算机。网络在区分所有与之相连的主机和网络时,均采用一种唯一、通用的地址格式;即每一个与网络相连的计算机和服务器都被指派一个独一无二的地址。
2、为了保证网络上每台计算机的IP地址的唯一性,用户必须向特定的机构申请注册,分配IP地址;网络中的地址分为两套:IP地址系统和域名地址系统。
这两套地址其实是一一对应的关系,由于IP地址是数字标识,使用时难以记忆,因此在IP地址的基础上又发展出一种符号化的地址方案来代替。
早期使用Hosts文件解析域名
1、主机名称重复
2、主机维护困难
DNS(Domain Name System 域名系统)
1、分布式
2、层次性
域名空间结构
1、根域
2、顶级域(组织域,国家/地区域名)
3、二级域名
4、FQDN=主机.DNS后缀
域名注册
- 域名注册是 Internet 中用于解决地址对应问题的一种方法
- 遵守先申请先注册原则
- 域名注册步骤 准备申请资料==>寻找域名注册网站==>查询域名==>正式申请==>申请成功
DNS的查询类型
1. 从查询方式上划分
递归查询:客户端得到结果只能是成功或失败
迭代查询:服务器以最佳结果作答
2. 从查询内容上划分
正向查询:由域名查找IP地址
反向查询:由IP地址查找域名
总结:
1、网络上交互是基于TCP/IP协议的,每个主机在逻辑上都有一个唯一的IP地址,物理地址为MAC地址。
2、为了保证地址的唯一性,用户协议向特定的机构申请注册,分配IP地址网络中的地址有两套方案:1、IP地址系统 2、域名地址系统。
3、由于IP是由32位二进制数字标识的,不方便记忆,所以以IP地址为基础发展了符号化的地址来代替解决,也就是域名。
DNS域名解析方式
1、 /etc/hosts
Linux系统中负责快速解析的文件,包含了IP地址和主机名的映射关系,在没有DNS服务器的情况下,使用本地etc/hosts完成解析/映射,实现快速访问。
PS:主要用于主机之间(IP和主机名)的映射/解析关系;示例:
192.168.154.10 master
192.168.154.11 node1
192.168.154.12 node2
2、 /etc/resolv.conf
DNS客户端配置文件,主要用于设置DNS服务器的IP和域名,还包含了主机域名的搜索顺序等等,这个文件是由域名解析器(resolvr,一个根据主机名解析IP地址的库)使用配置文件。
PS:主要用与匹配DNS服务器,示例:
nameserver 114.114.114.114(是国内移动、电信和联通通用的DNS)
nameserver 8.8.8.8(GOOGLE公司提供的DNS)
nameserver 218.2.2.2(江苏南京的DNS)
3、 /etc/sysconfig/network-scripts/ifcfg-ens33
我们也可以在网卡配置文件中定义DNS1= DNS2=
生效顺序:1hosts文件==> 2网卡配置文件==> 3 /etc/resolv.conf
网页的概念
网页
纯文本格式文件
编写语言为HTML
在用户的浏览器中被 “翻译” 成网页形式显示出来
网站
由一个一个页面构成的,是多个网页的结合体
主页
打开网站后出现的第一个网页称为网站主页(或首页)
域名
浏览网页时输入的网址
HTTP
用来传输网页的通信协议
URL
是一种万维网寻址系统
HTML
用来编写网页的超文本标记语言
超链接
是网站中点击这个链接后就能跳转至其他页面
发布
将制作好的网页上传网站
HTML
HTML叫做超文本标记语言,是一种规范,也是一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容。
HTML文件可以使用任何能够生成txt文件的文本编辑器来编辑,生成超文本标记语言文件,只用修改文件名后缀为”.html”或“.htm”即可。
HTML 基本标签
(1)HTML 语法规则
HTML标签采用双标记符的形式,前后标记符对应,分别表示标记开始和结束,标记符中间的内容被标签描述。前标记符由“”表示,结尾标记符多了一个“/”,由“”表示。
(2)HTML 文件结构
HTML文件最外层由表示,说明该文件是用HTML语言描述的。在它里面是并列的头标签()和内容标签(),最基本的
●HTML 文件结构如下:
网页的内容描述信息
网页显示的内容
●头标签中常用标签:
标签 描述
定义了文档的标题
定义了页面链接标签的默认链接地址
定义了一个文档和外部资源之间的关系
定义了 HTML 文档中的元数据
定义了客户端的脚本文件
定义了 HTML 文档的样式文件
●内容标签中常用标签
标签 描述
定义一个表格
定义了表格中的一行
定义了表格中某一行的一列
GET 和 POST 比较
GET 方法:从指定的服务器上获得数据
GET请求能被缓存
GET请求会保存在浏览器的浏览纪录里
GET请求有长度的限制
主要用于获取数据
查询的字符串会显示在URL后缀中,不安全,比如 http://www.test.com/a.php?Id=123
POST 方法:提交数据给指定服务器处理
POST请求不能被缓存
POST请求不会保存在浏览器的浏览纪录里
POST请求没有长度限制
查询的字符串不会显示在URL中,比较安全
HTTP 状态码
HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码,当浏览器请求某一 URL 时, 服务器根据处理情况返回相应的处理状态。
通常正常的状态码为2xx,3xx(如200),如果出现异常会返回4xx,5xx(如404)。
状态码首位 已定义范围 分类
1xx 100-101 信息提示
2xx 200-206 成功
3xx 300-305 重定向
4xx 400-415 客户端错误
5xx 500-505 服务器错误
HTTP 常见状态码
状态码 功能描述 200 一切正常 301 永久重定向 302 临时重定向 401
用户名或密码错误 403 禁止访问(客户端IP地址被拒绝) 404 请求的文件不存在 414 请求URI头部过长 500 服务器内部错误 502 无效网关 503 当前服务不可用 504 网关请求超时
HTTP 请求流程分析
用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。
1.请求报文
请求行:请求行由请求方法、URL 以及协议版本三部分组成。
请求头:请求头为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。
空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这一行非常重要,必不可少。
请求体:请求体是请求提交的参数,GET 方法已经在 URL 中指明了参数,所以提交时没有数据。POST 方法提交的参数在请求体中。
常用的请求头:
请求头 描述
Host 接受请求的服务器地址,可以是 IP:端口号,也可以是域名
User-Agent 发送请求的应用程序名称
Connection 指定与连接相关的属性,如 Connection:Keep-Alive
Accept-Charset 通知服务端可以发送的编码格式
Accept-Encoding 通知服务端可以发送的数据压缩格式
Accept-Language 通知服务端可以发送的语言
2.响应报文
状态行:状态行由协议版本,状态码,状态码描述三部分组成。
响应头:响应头与请求头部类似,为响应报文添加了一些附加信息。
空行:响应头部的最后会有一个空行,表示响应头部结束。
响应体:服务器返回的相应 HTML 数据,浏览器对其解析后显示页面。
常见响应头:
响应头 描述
Server 服务器应用程序软件的名称和版本
Content-Type 响应正文的类型(是图片还是二进制字符串)
Content-Length 响应正文长度
Content-Charset 响应正文使用的编码
Content-Encoding 响应正文使用的数据压缩格式
Content-Language 响应正文使用的语言
总结(必背)
1、域名空间结构
主机名 . 子域[. 二级域]. 顶级域 .
末尾的点代表根域
2、HTML文档结构
文件名以 .html 或 .htm 为后缀
3、网页基本标签
this is first html
Hello,World!
4、http/1.0、http/1.1、http/2.0、http/3.0区别
http1.0 开始支持传输http头部信息(http协议版本,状态码等);只支持短连接(在一个TCP连接中只能完成一次http请求和响应过程)
http1.1 支持长连接(连接保持,持久连接)和管道机制,即支持在一个TCP连接中可完成多次http请求和响应,且要求按照顺序一一对应
http2.0 支持二进制传输;支持长连接和完全多路复用,即支持在一个TCP连接中可完成多次http请求和响应,且不用按照顺序一一对应;还支持网页头部压缩和允许服务端主动推送
http3.0 基于UDP协议实现,具有更高的传输效率
5、http请求方法
http请求方法 GET 发送查询请求获取网页资源 PUT 提交数据,修改数据 DELETE 删除资源 POST 提交数据,插入添加数据 HEAD 请求网页的首部信息
6、HTTP协议报文格式
请求报文:请求行 (http请求方法、URL路径、协议版本) 请求头 请求体
响应报文:响应行 (协议版本、响应状态码) 响应头 响应体
7、响应状态码
请求正常的:2XX 3XX
请求异常的:4XX 5XX
状态码 功能描述 200 一切正常 301 永久重定向 302 临时重定向 401
用户名或密码错误 403 禁止访问(客户端IP地址被拒绝) 404 请求的文件不存在 414 请求URI头部过长 500 服务器内部错误 502 无效网关 503 当前服务不可用 504 网关请求超时
E-->