目录
一、web基础:
1、域名:
dns解析
静态页面
动态页面
2、dns与域名:
网络上的通信都是基于IP。主流的通信模式:TCP/IP
tcp协议建立和断开连接,都是要双方进行确认的
建立连接:三次握手
断开连接:四次挥手
通信是端到端:是端口进行通信(进程或者服务都是有指定的端口号)
http 80
nginx 80
ssh 22
mysql 3306
3、IP地址:
IP地址是主机在互联网上的唯一标识。
ip的作用是确定身份:你是谁,从哪来
端口:你要访问谁
公网IP地址已经没了,现在这个唯一标识(IP地址),nat地址转换。
IP地址是一个点分十进制组组成的
20.0.0.10
20.0.0:网络位
10:主机位
4、dns解析:
网站都是域名,dns解析的作用是把域名解析成IP地址
迭代:从根域名到二级域
递归:返回用户的过程,先到运营商——本地hosts文件——用户
dns解析三种方式:
1、/etc/hosts本地解析,速度最快,缺点:如果需要配置的解析地址多,工作量比较大
20.0.0.10 www.666.com 前面是ip 后面是域名映射,访问网站就是在访问IP地址
2、dns服务器来进行解析:也就是运营商,运营商会提供一个dns解析的IP地址,/etc/resolv.conf
3、网卡配置:ens33配置dns
三种方式有优先级:本地hosts文件——网卡配置——dns服务器
二、分布式和集群:
1、分布式:
把计算机系统或者是应用程序分布在多台独立的计算机或者服务器上。通过网络通信以及协作共同完成特定的任务或者服务
分布式的特点:可以把工作负载分散到多个节点上,提高性能和可靠性
分布式前端的nginx、分布式数据库、分布式文件系统
2、集群:
多台计算机或者服务器连接在一块,形成一个单一到的计算资源池,计算机通过网络互相连接,共享任务,而且集群一般都是由相同类型的计算机组成,运行的程序也是相同的。
集群的作用:通过增加计算机的节点,扩展系统,然后提高整体的处理能力和容量
集群是在分布式的基础上建立的
3、LNMP架构:
L:部署在linux上
N:nginx提供网页访问
M:mysql数据库,保存用户名和密码
P:PHP,处理动态页面
三、http
1、html:
超文本标记语言,也是我们最常见的网页格式。是一种规范,也是一种标准。也是一个文本文件
工作中最常见格式:
xxx.html
xxx.htm
网页:纯文本格式的文件,语言是HTML。浏览器来翻译HTML语言形成页面
网站:是由多个网页组成,网页的结合体。打开网站之后出现的第一个页面就是网站的主页或者首页
域名:域名需要注册,访问网站时输入的网址就是我说的域名
2、传输方式:http/https
hhtp:超文本传输协议
https:加密的超文本传输协议。靠ssl证书进行认证。网页的传输通信协议
URL:万维网的地址寻址系统(唯一标识。)
www.baidu.com/test/lndex.html 就是URL
URI:www.baidu.com/test/lndex.html /test后面的就是URI,匹配网站不同分支的内容
超链接:靠超链接把网站中的不同内容连接起来
3、web:
world wide web 全球广域网 也就是万维网
是一种分布式的图形信息系统。
主流的web2.0
web2.0:看、交互网页。用户不仅仅是看,还可以是网页内容的制造者。网页和用户可以双向之间形成交流
web1.0:就是一个字,看,看网页
f12 进网页
4、静态页面和动态页面:
1、静态页面:
只是文本文件,f12可以修改,一般以.html .htm保存的文本文件。网站的基础。静态页面和后台数据库没有任何交互,不包含请求程序。
更新起来表复杂,一本适用于更新比较少,仅做展示性的网站。一般都是网站的主页
一般都是网站的主页,静态页面的URL一般都是固定的
2、动态页面:
- URL不是固定的,能通过后台和用户交互
- 一般来说动态页面的URL中有个?号
- 动态页面是由专门的语言开发:PHP、jsp、Python、node.js
- 动态页面可以自动更新
- 访问的时间不同,访问的内容会发生变化。
5、http协议:
http协议的版本:
http0.9:淘汰
http1.0:基本淘汰
http1.1:目前最常用的,也就是https 和http,主要服务与https,端口是443。1.1特点就是提供了加密和安全传输的端口的一种http
http2.0:新一代的加密协议,传输速度比http1.1的速度更快
http协议:超文本传输协议,基于tcp协议的应用层传输协议。简单来说就是客户端和服务端之间进行数据传输(请求和响应网页)的一种规则
http首应用层上的协议。建立连接:三次握手。断开:四次挥手。
建立连接之后,客户端于服务端之间的请求和接收、响应都是通过socket接口来调用tcp协议执行。也就是端到端通信
http:本身是一种无状态协议,http协议本身不会对发送的请求和响应进行任何处理。就是让http处理大量的事物,提高效率。
http本身无状态,会话保持和缓存的问题。
http1.0是没有回话保持功能,http1.1将长连接加入到http协议中
缓存:cookie 记录用户状态,跟踪统计用户访问该网站的习惯,识别用户身份,保存用户信息。可以驻留在我们的计算机上,是一个很小的文件。保存特定的客户端和网站之间的信息数据。
cookie保存的信息有时效性:30天 保存的信息就会失效
客户端的ip地址验证:安全验证。
6、http的工作流程:
http是客户端——服务端之间的通信过程
是请求——响应的模型
1、建立连接:通过tcp/ip协议与服务器建立连接,客户端向服务端的80端口发送连接请求
2、发送请求:一旦连接建立之后,客户端就向服务器发送http请求。http请求:由一个请求的行和多个头部字段组成。请求方式:get、post两种方式
3、服务端处理请求:根据请求的方式和内容进行处理。服务端会读取请求头的字段,解析参数,处理数据等等。
4、服务端返回响应:形成一个http响应,响应由一个响应行,包含多个字段。响应内容包含重要的内容:状态码,用于表示服务端请求的处理结果。
1、http的状态码
1xx :信息提示,无实际作用,范围100-101
2xx :成功,表示请求处理结果成功 200
3xx :重定向,页面跳转,301。304表示请求的是缓存
4xx :客户端错误 403 404,表示请求的页面不存在或者没有访问权限
403:请求的页面禁止访问
404:服务器无法请求页面
5xx :服务端错误
500:内部服务器错误。
看到500要检查防火墙、检查进程也就是服务状态、检查端口、检查配置文件。端口号被占用
502:无效网关
503:请求的服务器不可用
504:网关请求超时
2、生产中常见的状态码:
200 ok:请求成功
301:永久重定向,永久跳转
302:临时重定向
304:访问本地缓存
403 Forbidden:禁止客户端访问该页面
404 NOT FOUND:服务器无法找到被请求的页面
500 internal server error:内部服务器错误
502BAD gateway:网关失效(一般是服务端的网关)
503 server Unavailable:服务器不可用(网站维护)
504 GATEWAY timeout:网关请求超时(服务端处于维护或者是路由器故障)
5、传输数据:一旦服务器生成了http响应,会通过之前建立的连接将响应返回给客户端。响应当中包含了请求的资源(网页内容)以及其他的需要传输的数据(一般是自定义)
6、关闭连接:响应发送完成,服务端就会进入连接关闭,http1.1会进入 time_wait状态,连接没有断开只是双方之间没有数据传输,一旦有新的请求,连接可以继续使用。160s,这就是会话保持(长连接)
http1.1会一次性获取页面的全部资源,然后发起四次挥手。只是不再传输数据。连接并没有断开。
7、客户端解析和显示响应:客户端收到http的响应之后,解析响应内容,包括页面解析,显示图片,播放视频。完成工作主要靠浏览器,浏览器自带解析和显示
客户端也可以继续发起请求,或者打开新的连接,请求其他资源。
7、http的请求方式:
get的方式:get向服务器发起请求的数据,依照http协议来进行 get就是请求
请求行:
请求体:
Accept:客户端可以解析的数据类型
Accept-Encoding:客户端可以接受的编码格式。以及数据是否需要压缩
Accept-Language:客户端可以接受的语言类型
Cache-Control:数据在本地缓存的时间
Connection:连接的处理方式,一般都是会话保持
Cookie:页面缓存
Host:一般来说表示请求的ip和端口号,也可以理解为请求的主机名。
user-Agent:客户端请求使用的浏览器的信息
响应头:
响应体:
......
post:post向服务端发送数据,按照http协议进行,服务器添加数据,post的请求方式会修改服务器上的数据
8、get和post的区别:
get:
只有get请求可以缓存
get的请求还可以保存在浏览器的记录Cookie 中
get的请求长度有限制
get就是获取数据
post:
post的请求不能被缓存,也不会保存在浏览器的Cookie中
post的请求没有长度限制。
请求的字符串不会显示,比较安全
看到No route to host那就是防火墙没关
9、实用工具:
telnet:可以测试服务器的指定端口是否正常
telnet 20.0.0.40 80
nc:
nc -l 8888打开8888端口
nc 20.0.0.40 建立连接