Web基础与HTTP协议
域名概述
域名的概念
IP地址不易记忆
早期使用Host文件解析域名
主机名称重复
主机维护困难
DNS(Domain Name System域名系统)
分布式
层次性
域名空间结构
根域
顶级域:组织域、国家/地区域名
二级域
FQDN=主机名.DNS后缀
小结:
网络上交互式基于TCP/IP协议的,每个主机在逻辑上有一个唯一位置标识(IP地址),物理地址为MAC地址
为了保证地址唯一性,用户协议特地给机构申请注册,分配IP地址网路中的地址有两套方案:
1、IP地址系统
2、域名地址系统
面试题
阿里云域名怎么申请
申请、查询重名、给钱20-60块、备案(阿里云)拍照(负责人拍照)10-20天申请号
申请之后就可以解析和用、但是如果有问题会查封
DNS解析
1、/etc/hosts
linux系统中负责快速解析的文件,包含了p与主机名的映射关系,在没有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服务器,示例:
nameserver114,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、/etc/resolv.conf
网页的概念
网页
·纯文本格式文件
·编写语言为HTML
·在用户的浏览器中被“翻译”成网页形式显示出来
网站
由一个一个页面构成的,是多个网页的结合体
主页
打开网站后出现的第一个网页称为网站主页(或首页)
域名
浏览网页时输入的网址
HTTP
用来传输网页的通信协议
URL
是一种万维网寻址系统
上面整行网址就是URL
HTML
用来编写网页的超文本标记语言
超链接
超链接是将网站中不同网页链接起来的功能
发布
将制作好的网页上传到服务器供用户访问的过程
Web概述
Web (World Wide Web) 即全球广域网,也称为万维网
一种分布式图形信息系统
建立在Internet.上的一种网络服务
Web1.0 vs Web2.0
Web1.0
以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读
网站提供的内容
这个过程是网站到用户的单向行为
Web2.0
更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者
加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与参与
Web2.0特征
用户分享、以兴趣为聚合点的社群、开放的平台,活跃的用户
静态网页
静态网页是标准的HTML文件
扩展名是.htm、.html
.文本、图像、声音、Flashi动画、客户端脚本和ActiveX控件及Java小程序等
是网站建设的基础,早期网站一般都由静态网页制作
没有后台数据库、不含程序和不可交互的网页
相对更新起来比较麻烦,适用于一般更新较少的展示型
网站
静态页面特点
1、每个静态网页都有一个固定的URL,且URL以.htm、
html、.shtml等常见形式为后缀,而不含有“?”
2、网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的
3、静态网页的内容相对稳定,容易被搜索引擎检索
4、静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难
5、静态网页的交互性较差,在功能方面有较大的限制6、页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面
动态网页
网页URL不固定,能通过后台与用户交互
在动态网页网址中有一个标志性的符号 “?”
常用的语言有PHP、JSP、Python、Ruby等
动态网页的特点
交互性
网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋
自动更新
无须手动地更新TML文档,便会自动生成新的页面,可以大大节省工作量
因时因人而变
当不同的时间,不同的人访问同一网址时会产生不同的页面
HTTP协议概述
HTTP协议是互联网上应用最为广泛的一种网络协议,设计这个协议的目的是为了发布和接收Web服务器上的HTML页面
HTTP协议的版本
●HTTP0.9
●HTTP1.0
●HTTP1.1
●HTTP2.0
HTTP1.0和HTTP1.1之间的区别
缓存处理
在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准
HTTP1.1则引入了更多的缓存控制策略例如Entitytag,If-Unmodified-Since,If-Match,If-None-Match等更多可供选择的缓存头来控制缓存策略。
带宽优化及网络连接的使用
HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送
过来了,并且不支持断点续传功能,
HTTP1.l则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接
错误通知的管理
在HTTP1.1中新增了24个错误状态响应码,如409
(Conf1ict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删
除
Host头处理
在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。
但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)
长连接;1.0只能一次性的联系,1.1支持保持活跃状态的连接方式,即长链接
HTTP1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection(保持):keep-alive(存活),一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点
cookie和session
cookie和session都为了实现的是http的短期的持久化(内存/缓存方式,查询快、效率比较高)cookie
是缓存在用户端(client)浏览器中的(默认缓存一天),当下次客户端通过同一个浏览器访问客户端的时
候,会优先读取cookie中的缓存信息,向服务端进行请求,同时服务端收到客户端请求的时候,读取到coo
kie文件,知道客户端之前找的是服务器A处理的任务,为了省事儿,省资源,干脆直接讲请求直接再交给
服务器A处理
两者对比:
cookie省服务器性能
session更安全
1、为后面服务、集群、功能优化做铺垫
2、具体解释了怎么解决HTTP无状态协议的持久化/存储。
HTTP获得Web资源的方法
HTTP请求格式(GET/POST方式)
(1)GET方式
1、请求行
请求的方式
请求的资源路径
请求的版本协议号
2、请求头(描述信息/标准化信息)
Accept:客户端可以接受的数据类型
Accept-Language:客户端可以接受的语言类型
User-Agent:浏览器的信息
Accpect-Encoding:客户端可以接受的编码格式
Host:表示请求的ip和端口号
Connection:告诉服务器请求连接如何处理
Keep-Alive:通知服务器回传数据不要马上关闭,保持一小段的连接
Closed:马上关闭
(2)POST请求方式
1、请求行
请求的方式
请求的资源路径
请求的协议的版本号
Accept:客户端可以接受的数据类型
Accept-Language:客户端可以接受的语言类型
Referer:表示请求发起时,浏览器地址栏中的地址
User-Agent:浏览器的信息
Content-Type:发送的数据类型
Content-Length:发送的数据长度
(3)请求体
就是发送给服务器的数据
小结
简单的理解:
###GET方法:
从指定的服务器上@得数据
GET请求能被缓存
GET请求会保存在浏览器的浏览纪录里(cookit)
GET请求有长度的限制
主要用于获取数据
查询的字符串会显示在URL中,不安全
###POST方法:
提交数据给指定服务器处理
POST请求不能被缓存
POST请求不会保存在浏览器的浏览纪录里
POST请求没有长度限制
查询的字符串不会显示在UL中,比较安全
HTTP状态码:
当使用浏览器访问某一个L,会根据处理情况返回相应的处理状态
通常正常的状态码为2xx,3xx (如200)
如果出现异常会返回4xx,5xx (如404)
状态码首位 己定义范围 分类
1xx 100-101 信息提示
2xx 200-206 成功
3xx 300-305 重定向
4xx 400-415 客户端错误
5xx 500-505 服务器错误
HTTP协议请求流程分析
用户输入URL(地址链接)(http:L,baidu,com:80 tools.html)
客户端获取到端口及主机名后,客户端利用DS解析域名,首先客户端的浏览器会先找自身的缓存,如果有
解析结束,如果没有客户端会去找host文件,如果host文件没有的话,客户端会去找本地的DNS缓存服务器,本地的DNS缓存服务器没有的话,缓存服务器会去找根域,根域没有,会返回一个.com.然后本地缓存服
务器会去找顶级域,顶级域没有的话会返回baidu.com.,然后本地缓存服务器会去找二级域,
二级域解析完后会返回客户端。
客户端解析到IP地址后会通过TCP的三次握手与服务器建立连接
服务器错误
[外链图片转存中...(img-GUddJKmy-1657798004649)]
## HTTP协议请求流程分析
用户输入URL(地址链接)(http:L,baidu,com:80 tools.html)
客户端获取到端口及主机名后,客户端利用DS解析域名,首先客户端的浏览器会先找自身的缓存,如果有
解析结束,如果没有客户端会去找host文件,如果host文件没有的话,客户端会去找本地的DNS缓存服务器,本地的DNS缓存服务器没有的话,缓存服务器会去找根域,根域没有,会返回一个.com.然后本地缓存服
务器会去找顶级域,顶级域没有的话会返回baidu.com.,然后本地缓存服务器会去找二级域,
二级域解析完后会返回客户端。
客户端解析到IP地址后会通过TCP的三次握手与服务器建立连接
![image-20220714185707587](https://img-blog.csdnimg.cn/img_convert/b1feb54eaf09ecab59498975a73b1093.png)