WEB与HTTP

域名

baidu www.baidu.com

DNS解析

静态页面

动态页面

DNS与域名

网络上的通信都是基于IP

目前主流的通信模式:TCP/IP

TCP建立连接和断开连接,都是要双方进行确认的

建立连接:三次握手

断开连接:四次挥手

通信是端到端

都是通过端口来进行通信的(进程或者服务都是有指定的端口号)

http 80

nginx 80

ssh 22

mysql 3306

IP地址:以IP地址加端口号的形式

IP地址是主机在互联网上的唯一的标识

IP的作用是确定身份,你是谁,是从哪里来的

端口:你要访问谁

但是目前的公网地址已经耗尽了,现在的这个唯一标识(IP地址),NAT地址转换。

IP地址是一个点分十进制

192.168.233.10

192.168.233:网络位

10:主机位


DNS解析

网站都是域名,DNS解析的作用就是把域名解析成IP地址

迭代:从根域名到达二级域

返回用户的过程:递归

递归 先到运营商>本地hosts>用户

DNS解析的三种方式
  1. /etc/hosts本地解析 特点就是速度最快,但是有个缺点 如果要需要解析的地址多,工作量比较大

    配置格式
    /etc/hosts 文件下
    在最后一行添加
    192.168.233.10 www.czy.com
    先IP 后域名 
    
  2. DNS服务器来进行解析 主要就是运营商

    运营商:运营商提供一个供DNS解析的IP地址

    /etc/resolv.conf

    格式:

    nameserver 218.2.135.1

  3. 网卡配置

    /etc/sysconfig/network-scripts/ifcfg-ens33

    这三种方式是有优先级的,有一个生效的顺序

1-hosts文件的优先级最高

2-网卡的配置

3-DNS服务器解析(resolv.conf)


分布式和集群

分布式

把计算机系统或者应用程序分布在多台独立的计算机或者服务器上。通过网络通信以及协作,共同完成特定的任务或者服务

工作负载分散到多个节点上,提高性能和可靠性

通过网络通信互相协作来完成同一个任务

分布式前端的nginx 分布式数据库 分布式文件系统


集群

多台计算机或者服务器连接在一块,形成一个单一的计算资源池,计算机通过网络互相连接,共享任务,集群都是由相同类型的计算机组成,运行的程序也是相同的。

集群的作用就是通过增加计算机的节点,扩展系统,然后提高整体的处理能力和容量

集群是在分布式的基础上建立的


LNMP 架构

部署Linux

N:nginx 提供网页访问

M:mysql数据库,保存用户名和密码

P:PHP,处理动态页面


html:超文本标记语言

也是我们最常见的网页格式

它即是一种规范也是一种标准,本身也是一个文本文件。

xxx.html

xxx.htm

网页:纯文本格式的文件 语言是用html 浏览器就是翻译html语言的 相当于Linux中的shell

网站:是由多个网页组成的,网页的结合体 ,打开网站之后出现的第一个页面就是网站首页

域名:需要注册备案,访问网站时,输入的网址就是我们说的域名

传输方式:http或者https

  1. http:超文本传输协议
  2. https:加密的超文本传输协议
  3. 靠ssl证书来进行认证的 http https都是网页的传输通信协议

URL:万维网的寻址系统(唯一标识)

URI:比如说 www.baidu.com/test/index.html

/test后面的内容就是URI 匹配网站不同分支的内容

超链接:超链接把网站当中的不同内容连接起来


web

world wide web 全球广域网 也就是我们前面提到的万维网

URL:万维网的寻址系统(唯一标识)

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

web1.0;

就是一个字:看,也就是看网页。

web2.0;

看。看网页OK,交互作用 也就是说用户不仅仅是看,还可以是网页内容的一个制造者。

网站与用户直接可以双向之间形成交流


静态页面和动态页面
  1. 静态页面:只是文本文件,可以修改,一般以.html.htm保存的文本文件。是网站的一个基础页面。静态页面和后台数据库没有任何交互,也不包含请求程序

    更新起来比较复杂,一般来说适用于更新比较少的展示型网站

    一般都是网站的主页 。静态页面的URL是固定的

  2. 动态页面

    2.1 URL不是固定的,可以通过后台和用户交互

    2.2 动态页面的URL当中,一般有个?号

    2.3 常用的语言格式 PHP,jsp pythone node.js

    2.4 动态页面可以自动更新

    2.5 访问的时间不同,访问的内容会发生变化


HTTP协议

http的默认端口80

http协议:0.9 淘汰

http1.0:基本淘汰

http1.1:目前最常用的 https http1.1 主要服务于https,端口443

1.1的特点就是提供了加密和安全传输的端口

http2.0:新一代的加密协议

传输速度比http1.1的速度更快。

http协议:超文本传输协议,基于tcp协议的应用曾传输协议 ,简单来说就是客户端与服务端之间进行数据传输的一种规则

http是应用层上的协议,建立连接:三次握手,断开:四次挥手,建立连接之后,客户端与服务端之间的请求和接受,响应都是通过socket接口来调用tcp协议实现

端口到端口的通信

http:本身是一种无状态协议,http协议本身不会对发送的请求和响应进行任何处理。

http协议能够处理大量的事务,提高效率

因为http本身是无状态的,这就带来了一个问题那就是会话保持和缓存的问题


cookie作用

缓存:cookie 记录用户状态,跟踪以及统计用户访问该网站的一个习惯,识别用户身份,保存客户信息,可以驻留在我们的计算机上,是一个很小的文件,基本不占空间,保存特定的客户端和网站之间的信息数据

时效性:30天保存的信息就会失效

客户端的IP地址验证:安全验证


http的工作流程

客户端–服务端通信过程

请求–响应的模型

建立连接:tcp/ip协议与服务器建立连接(三次握手),客户端向服务端的80端口发送连接请求

发送请求:一旦连接建立之后,客户端向服务端会发送http请求。http请求:由一个请求的行和多个头部字段组成。

请求方式get post

服务端处理请求:根据请求的方式和内容进行处理。服务端会读取请求头的一些字段,解析参数,处理数据等等。

服务端返回响应:形成一个http响应,响应会由一个响应行,包含多个字段。响应内容包含一个重要的内容状态码(用于表示服务端对于你请求的一个处理结果,成功还是失败)


http的状态码

1xx 信息提示100-101 无实际作用

2xx 2开头的都是成功,请求处理结果成功

3xx 重定向,页面跳转 304表示请求的是缓存

4xx 客户端错误,403 404 请求的页面不存在或者没有权限访问

403:请求的页面禁止访问

404:服务器无法请求的页面

==5xx 服务端错误 ==

==500 内部服务器错误 ->检查进程也就是服务状态,检查端口。检查配置文件。检查防火墙。端口号被占用 ==

==502 无效网关 ==

503 请求的服务器不可用,可能下线了

504 网关请求超时

生产中常见的状态码

200 ok 表示请求成功

301 永久重定向

302 临时重定向

304 访问的是本地缓存

403 forbidden 禁止访问客户端访问该页面

404 NOT FOUND 服务器无法找到被请求的页面

500 inetnal server error 内部服务器错误

502 BAD getway 网关失效 (服务端的网关失效)

503 server Unavailable 表示服务器不可用 一般是因为网站在维护的原因

504 GATWAY timeout 网关请求超时 一般也是因为服务端处于维护状态,或者是路由器故障


传输数据

一旦服务器生成了http响应,会通过之前建立的连接将响应返回给客户端

响应当中就包含了请求的资源(网页内容)以及其他的需要传输的数据(一般是自定义)

关闭连接:响应发送完成,服务端就会进入连接关闭,http1.1 time_wait 双方还在建立连接,只是双方之间不再有数据传输了。

一旦有新的请求,那么之前的连接就可以继续使用。一般是160秒 会话保持或者长连接

http1.1会一次性获取页面的全部资源,然后发起四次挥手。只是不再传输数据,连接并没有断开。

客户端解析和显示响应:

客户端收到http的响应之后,解析响应内容,包括页面解析,显示图片,播放视频。

主要靠的就是浏览器。自带解析 所以http是一个应用层协议,原因就在这里

客户端也可以继续发起请求,或者打开新的链接,请求其他资源


http的请求方式

get的方式:

向服务器发起请求的数据,依照http协议来进行 get就是请求

请求行

请求体:

Accept 客户端可以接受的数据类型

Accept-Encoding:客户端可以接受的编码格式,以及数据是否需要压缩

Accept-Language:客户端可以接受的语言类型

Cache-Control:数据在本地缓存的时间

Connection:连接的处理方式 一般都是会话保持

Host:表示请求的IP和端口号,也可以请求的主机名

User-Agent:客户端请求所用的浏览器信息

响应头

响应体:

post

向服务端发送数据,按照httpd协议进行,向服务器添加数据。post的请求方式会修改服务器上的数据 这是两者之间的差别

get和post的区别

只有get的请求可以被缓存,而且get请求还可以保存在浏览器的cookie中

但是get的请求长度有限制

get就是获取数据

post

post的请求不能被缓存,也不会保存在浏览器的cookie中

post的请求是没有长度限制的

请求的字符串不会显示,比较安全。

telnet

可以测试服务器的指定端口是否正常

格式:telnet 192.168.233.20 80

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早上的星星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值