Nginx基础之通信协议(理论 一)

一、web通信流程

在开始学web服务器之前,需要先理解web通信协议。
我们平时浏览网页的时候,会打开浏览器,输入网址后按下回车键,然后就会显示出你想要浏览的内容。
在这个背后,是如何进行的呢?

部署好web服务器,用来提供网站功能的,最基本的内容展示html内容:
静态数据:png,css,js,gif,mp4;那么处理静态数据肯定要部署NFS服务器;
动态数据:从MySQL数据库总读取出来的;

  • 浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP。
客户端指的就是能够发送HTTP请求的客户端
1.浏览器,如能访问http://www.baidu.com。
2.curl命令
  • 然后通过IP地址找到IP对应的服务器后,要求建立TCP连接。
比如一个局域网环境下的10.0.0.0~10.0.0.255
一台服务器是10.0.0.10,一台服务器是10.0.0.20;
那么这2台机器要进行数据传输,就要搭一根线,建立基于TCP/IP协议的一个连接,才能进行传输数据。
也就是说你的浏览器(你的IP)和远程服务器(比如阿里云服务器)的IP之间
1.IP先建立了一个连接
2.在基于这个TCP连接上之后进行了更复杂的数据传输,又在TCP基础之上,封装了一个HTTP协议,制定了更多的数据传输规则。

两台机器之间,其实就是在进行大量的数据收-发,收-发
就得遵循规则
比如:
规则1:数据是谁发来的,发到哪里去
规则2:这个数据从哪个端口发来的,发到哪个端口去
规则3:这个数据是什么类型的
简单理解,就好比你寄快递。

网站访问本质上就是HTTP的访问过程。

  • 等浏览器发送完HTTP请求包后,服务器接收到请求包之后才开始处理请求包。(发出数据包的请求)
  • 服务器调用自身服务,返回HTTP响应包。(Linux服务器,基于Nginx来接收请求,解析请求)
比如:客户端访问的是http://www.baidu.com/Nginx.png
那么Nginx就会根据它的配置文件去指定的地方去找这个Nginx.png图片,最终给用户返回。
  • 客户端收到来自服务器的响应后开始渲染这个响应包里的主体,等收到全部的内容随后断开与该服务器之间的TCP连接。

服务器的连接是有限制的,默认是65535个连接,如果不断开,服务器达到上限就无法跟其他客户端进行交互。
在这里插入图片描述

二、web服务器工作原理

web服务器的工作原理可以简单地归纳为:

  • 客户端通过TCP/IP协议建立到服务器的TCP连接。
  • 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档。
  • 服务器向客户端发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理得到的数据返回给客户端。(根据用户的请求URL格式,Nginx会自动判断是动态请求数据库内容的;还是静态的照一张图片(nfs));
  • 客户端与服务器断开(TCP/IP),由客户端解释HTML文档,在客户端拼命上渲染图形结果。

三、客户端请求到达服务器流程

  • 当客户端拿到服务器域名对应的IP后,浏览器会以一个随机端口(1024<随机端口<65535)向服务器的web程序(Nginx,apache)的80端口发起TCP连接请求。
  • 该请求经过复杂的网络环境后到达服务器,进入服务器的对应的网卡,再进入Linux内核的TCP/IP协议栈,一层层的解开数据包,甚至经过防火墙,最终到达Nginx程序,确认TCP/IP连接。
  • 确认TCP连接之后,客户端继续发起HTTP请求,如常见的get、post请求方法。

四、TCP/IP协议

传输控制协议,是一种面向连接的(面向两个节点之间的)、可靠的(两个节点之间有一个确认的过程才能建立连接)、基于字节流的传输曾通信协议。
简单说TCP协议就是控制数据包在传输过程中的规范格式。
IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。
设计IP的目的是提高网络的可扩展性:

  1. 一是解决互联网问题,实现大规模、异构网络的互联互通;
  2. 二是分割顶层网络应用喝底层网络技术之间的耦合关系,以利于两者的独立发展。

根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据传输服务。

TCP/IP协议值得不仅仅是TCP和IP这两个协议。
而是由FTP、SMTP、TCP、UDP、IP等各种协议组成的协议组,但是TCP/IP是最具有代表性,因此俗称TCP/IP协议。

小结

因此你会发现,web通信原理中,主要分两块协议的建立

  • TCP/IP
  • HTTP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值