web基础和http协议(粗糙版)

服务部署,集训,分布式,数据库,日志系统,等二阶段

web基础和http协议:

web的相关基础知识,包括域名 dns解析 网页的概念以及http协议

1.网络当中通信:端口 ip 协议 tcp/ip 传输过程中我们使用的tcp协议

tcp:是进程到进程的,可靠的,安全的传输协议

ip:每一台主机在互联网中的都有一个唯一的标识(ip地址),区别在网络中的不同主机和用户

ip格式都是固定的,都是点分十进制,例如:192.168.86.10

互联网当中主机与主机实现通信,靠的就是ip地址

标准格式是ip:端口 #ip加端口的形式

设备的唯一标识是网卡的mac地址

必须加端口的原因:

1.tcp协议通信,ip+端口

2.区分不同应用

2.ip地址不好记,因此引申出了域名

又因域名引申出dns域名解析,就是把域名解析成ip地址。访问域名,实质上还是在访问ip地址。

dns解析的三种方式,以及优先级:

1.修改/etc/hosts文件解析方式(Linux版)

window版在C盘中可以查找一下

这种方法的本地解析速度是最快的

ip地址和域名之间形成映射关系

2./etc/resolve.conf

nameserver 218.2.135.1 #ps:这是电信的dns解析地址

由运营商提供的dns解析的服务端的ip地址

此文件配置完之后无须重启任何服务

3.网卡配置文件当中的dns地址,也是可以有多个

web基础和http协议(粗糙版)_第1张图片

配置完要生效,必须要重启网卡设备

systemctl restart network

优先级:

本地hosts文件最高

然后网卡配置

最后是运营商提供的地址最低

分布式和集群:

分布式:把计算机系统或者应用程序分别部署在多台独立的计算机或者服务器上。计算机或者服务器通过网络互相通信和写作,他们共同完成特定的任务或提供服务

简单举例餐厅

最早期只有一个人:需要收银,买菜,做菜,传菜,洗菜

现在是每一个活计都有一人,但是这些事都属于餐厅,这是分布式

集群:集群是分布式的扩展:

建立在分布式的基础之上。在每个工作节点上,用多台服务器或者计算机连接在一起,形成一个单一的计算资源池。这些计算机通过网络连接,共享任务和资源负载,实现高性能和高可用。集群当中的服务器一般都是由相同规格的计算机组成。而且他们的是运行相同的应用程序或者服务

简单意思就是之前是每个活计都是一个人,集群是每个活计都增加对应的人

总结一句话就是:

分布式:把一个整体的服务进行拆分,每个节点只负责特定的功能

集群:集群建立在分布式的基础上,每个节点都添加多个规格相同,功能一致的服务器。实现高性能(提供处理速度)高可用(可以实现冗余)负载均衡(在最大分配上,实现每个机器都可以参与到工作当中)

web基础和http协议(粗糙版)_第2张图片

域名:分布式结构

www.baidu.com.cn.

这是从右向左看

.顶级域,根域

全国有13台根域服务器,美国10个 日本1个 英语1个 瑞典1个

中国是根域服务器的镜像服务器

以上是IPv4的根域服务器

中国有IPv6的根域服务器

cn.顶级域 一般表示国家地区

com 二级域表示商业结构,edu:教育机构 net:运营商

子域: 三级域。baidu 需要注册申请. www:主机名,www对应的就是一台计算机

html:超文本的标记语言,是一种规范,也是一种标准。通过标记符号来标记要显示的网页中的各个部分

本身就是一个文本文件,通过添加标记符,告诉浏览器,如何显示其中的内容

在工作中最常见的是.html 和.htm

网页的概念:

网页:纯文本格式的文件,编写的语言:html

翻译语言:一般是浏览器翻译

网站:是由多个网页组成的结合体

打开一个网站,展现的第一个页面就是网站的主页(首页)

域名:网站的访问地址

传输内容:http或https

URL:https://www.bilibili.com

完整的连接就是URL

URI: /v/dance/otaku/ 匹配网站的分支页面

超链接:

网站中不同页面连接起来的功能

html语法规则

web基础和http协议(粗糙版)_第3张图片

web:全球广域网,万维网

是一种分布式图形信息系统

建立在internat上的一种网络服务

web1.0已淘汰,只能提供页面访问

他是静态页面

现在市面上是web2.0:交互,用户即是网站的内容消费者,同时还是网站内容的制造者,加强了网站和用户之间的互动

内容可以由用户来提供。web2.0用户和网站之间可以双向交流

他是动态页面

静态页面:标准的html文件,一般以.html或者.htm格式做为文件的结尾

提供的服务是文本,图像,声音,动画

网站建设的基础,早期的网站都是静态页面

没有后台数据库,也不包含交互的功能

更新比较麻烦,一般适用于展示型的网站

静态页面都有固定的地址(URL)

内容稳定,容易被搜索引擎检索到

没有数据库,也没有交互,访问速度很快

动态页面:

网页的URL是不固定的。

有后台:就是数据库

动态页面中的URL当中有一个标志性的?符

编写语言:PHP ISP Python Ruby

动态页面的特点:

1.交互性

2.自动更新

3.页面内容是不断变化的

web3.0:沉浸式体验。元宇宙

http协议:

http:超文本传输协议。互联网上应用最广的网络协议,基于TCP协议的应用层传输协议

客户端和服务端之间的传输规则

http是应用层上的协议,建立在传输层tcp之上,客户端和服务端进行tcp连接

第一步三次握手之后建立连接

建立连接之后发送http请求与http响应都是通过scoket(端口)调用来实现数据传输

http是一种无状态协议:连接状态不是由http自动控制的。而且http协议本身不会对请求和响应的通信状态进行持久化处理

持久化是:

连接保持(http1.1之后,可以实现连接保持)

会话保持(cookie。)

cookie:是缓存数据,记录用户的登录状态,跟踪统计用户访问网站的习惯,识别用户的身份(保存账号密码);保存在本地计算机上的一个小文件,有时效性(30天,长的半年。而且可以人工控制。)、

会话保持:在访问网站时,用户所有行为和状态是统一的

连接保持:tcp协议的连接状态的控制

手机通话: 15588877766 陆墨宁的电话 拨打电话...尝试建立连接....陆墨宁接听我的电话......建立连接........通信(双方之间进行信息的交流).........断开连接(断开的不是连接,而是双方之间不再用数据传输),四次挥手之后,并不是断开连接,而是双方之间进入新的tcp连接状态 (time_wait)正常默认时间在60-120秒

大型的网站时间会长一点。比如华为商城是180秒。time_wait核心:即使双方不在传输数据,但是连接并没有断开,双方继续传输数据,就不需要再三次握手,可以直接再次发起数据传输。避免了频繁请求,造成资源大量占用

面试题:

四次挥手之后,双方的连接断开了嘛?

没有断开,但是双方不再传输数据,进入连接等待状态,会保存60到120秒

http的工作方式:

1.建立连接,http协议的默认端口是80

客户端向服务端发送80端口发送连接请求

请求的方式:get和post两种

2.服务端处理请求:根据请求的方式,请求的内容做出相应的处理

3.服务端返回响应:处理请求完成之后,会生成一个http响应,响应行包含状态码:对客户端请求的处理结果

面试题:响应码的类型以及响应状态码的含义:

响应码: #ps:需要全背下来,面试会问

1xx 100-101 信息提示

2xx 200 请求成功

3xx 300-305 重定向,页面跳转。304表示请求的是本地缓存

4xx 400-415表示客户端错误

5xx 500-505 服务端错误

常用的码有:

200 ok 表示请求成功

301 永久重定向

302 临时重定向

403 禁止访问该页面

404 服务端无法找到客户端要请求的页面

500 内部服务器错误

502 网关失效

503 当前服务不可用

504 网关请求超时

面试题:访问nginx提供的网站服务,但是报错,状态码:500,应该如何解决此问题

1.看日志

服务日志:

1.配置文件是否有错误

2.端口号是否被占用

系统日志:

看防火墙策略:是否被nginx端口放行

2.服务状态,nginx是否正常运行

3.硬件,网卡设备是否正常

4.网线是否老化松动

5.路由器是否配置了对应的转发策略以及是否对域名或者ip地址做了访问控制(ACL)

响应之后,涉及到传输数据:通过之前和客户端建立的连接将相应发送到客户端。通过tcp连接传输数据

数据传输完成------四次挥手------time_wait状态-------关闭连接

https:加密的http协议。在传输数据的过程中,对通信内容进行加密,可以防止在通信的过程被窃听,篡改和伪造

客户端和服务端之间交换密钥,进行身份认证,确保只有合法的接收方能够解密数据

认证方式:证书认证。https用数字证书来验证服务端的身份,客户端在于服务端建立连接时,会收到服务端的数字证书,确认服务端的真实性和合法性。确保客户端连接到正确的服务器。

URL的信息是经过加密的。

搜索引擎和排名是优先排名,https可以在搜索引擎当中被优先检索。鼓励网站使用https

性能:数据传输加密,解密,性能降低的问题,但是已现在的算法和硬件技术,这种消耗几乎可以忽略不计

数字证书:第三方证书颁发机构,CA.获得

基本上网站都是https

http协议的版本:

http0.9已淘汰

http1.1(包含连接保持):他会一次性的获取页面的所有内容。包括图片,文字,还有影像等

https:默认端口443。http1.1主要是为https提供服务

http2.0:1.1的升级版,提供性能和加载速度

http1.1的特点:

1.缓存机制(第三方提供cookie.)http1.1的缓存功能主要是控制缓存策略

2.带宽优化,http1.1可以控制:请求的资源,只能访问特定的部分。返回码206,访问是被限制的,资源是可控的

3.长连接(连接保持):即使四次挥手,连接也没有断开,进入time_wait,在应用中显示Keep-alive。time_wait状态虽然占用的资源很少,但是多了也会占用服务器的大量性能。影响整体的响应效率。(大网站比较关注。并发量比较高的网站)

面试题:time_wait状态虽然占用的资源很少,但是多了也会占用服务器的大量性能,那为什么不直接关闭time_wait呢?

time_wait虽然也会占用资源,但是比起重新请求,资源消耗小的多

http请求的方法:

get:只是向服务端发送请求数据,只是请求没有其他内容

get的请求方式是可以被缓存的

只有get的请求会记录在cookie中

get的请求长度是受限的

主要作用就是获取数据,也就是查看。

get的请求URL会显示完整的路径

get方式的请求的特点:

1.请求头:

包含请求行

请求资源路径

以及请求的协议和版本号

accept:表示客户端可以解析的文件类型

accept-encoding:客户端可以接受的编码格式

accept-language:客户端可以接受的语言类型

cache-control:客户端可以支持的缓存最大时间

connection:告诉服务端请求要如何处理

keep-alive:表示连接保持

host:请求的客户端ip和端口号

user-agent:客户端访问服务端的操作系统和浏览器版本

2.响应头,由服务端发起,客户端请求什么,服务端就响应指定的内容

post:可以向服务端发送数据,而且可以修改后台服务器上的数据

把数据发送到服务端,可以修改服务端的数据

post的请求没有缓存,而且也不会记录在cookie中

请求没有长度限制

post请求没有URL的路径显示

你可能感兴趣的:(云计算课程学习,前端,http,网络协议)