网络应用体系结构
(这部分原文https://blog.csdn.net/enchanted_zhouh/article/details/76094308)
一、C/S 架构
C/S架构是一种典型的两层架构,全称是Client/Server,即客户端/服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。
比如:微信/客户端QQ等是基于C/S架构。
二、B/S架构
B/S架构的全称为Browser/Server,即浏览器/服务器架构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S架构的系统无须特别安装,只要有Web浏览器即可。
比如:IE浏览器/WEB端QQ等是基于B/S架构的。
注:客户端QQ是基于C/S架构的,C-客户端:即下载好的QQ客户端,可以在本地处理一些自主问题而无需经过服务器的处理,S-服务器端:即你与其他人聊天时,你的聊天记录经过服务器的指定传送给对方,然后才能开始愉快的聊天。C/S需要用指定的工具(比如客户端),而B/S用浏览器进行网页操作就可以了,不需要下载指定登陆工具。
三、P2P架构
P2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点“。“对等”技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。
P2P还是英文Point to Point (点对点)的简称。它是下载术语,意思是在你自己下载的同时,自己的电脑还要继续做主机上传,这种下载方式,人越多速度越快但缺点是对硬盘损伤比较大(在写的同时还要读),还有对内存占用较多,影响整机速度。
P2P架构的核心思想是每个节点既可以充当客户端(Client),又可以充当服务器端(Server)。
比如:BT/电驴下载,非法传播视频的网站等,因为每个结点既是客户端可以进行下载,又是服务器端可以继续上传资源以提供下载服务给其他人,所以找不到真正的Server,打击非法网站也就难上加难了,所以P2P架构就是一种”我为人人,人人为我“的资源共享思想。如果是C/S架构,比如HTTP协议,只需单点攻击Server,整个C/S架构就失去了最核心的服务器端部分,基于C/S架构的通信也就被攻破了。
Web和HTTP
Web页面是由对象组成的,一个对象(object)只是一个文件,诸如一个HTML文件、一个JPEG图形、一个java小程序或一个视频片段这样的文件,且他们可以通过一个URL地址寻址。Web浏览器实现了HTTP的客户端,Web服务器实现了HTTP的服务器端,它用于存储Web对象,每个对象由URL寻址,流行的Web服务器有apache等。
Web的应用层协议是超文本传输协议(HyperText Transfer Protocol,HTTP),它是Web的核心。HTTP由两个程序实现:一个客户端程序和一个服务器程序。客户端程序和服务器程序运行在不同的端系统中,通过交换HTTP报文进行会话。
HTTP使用TCP作为它的支撑运输协议。HTTP客户首先发起一个与服务器的TCP连接。一旦连接建立,该浏览器和服务器进程就可以通过套接字接口访问TCP。由于TCP为可靠的数据传输,这意味着,一个客户进程发出的每个HTTP请求报文最终能完整地到达服务器,类似的,服务器进程发出的每个HTTP响应报文最终能完整地到达客户。这里我们看到了分层体系结构最大的优点,即HTTP协议不用担心数据丢失,也不关注TCP从网络的数据丢失和乱序故障中恢复的细节,那是TCP以及协议栈较低层的工作。
服务器向客户发送被请求的文件,而不存储任何关于该客户的状态信息,因为HTTP服务器不保存关于客户的任何信息,HTTP是一个无状态协议(stateless protocol)。
非持续连接和持续连接
每个请求/相应对经过一个单独的TCP连接发送,称为非持续连接。
所有请求及其相应经相同的TCP连接发送,称为持续连接。
HTTP协议详解
域名系统(Domain Name System,DNS)
DNS是:
1、一个由分层的DNS服务器实现的分布式数据库
2、一个使得主机能够查询分布式数据库的应用层协议
别人把一个IP地址和一个域名地址绑定到一起,
而我想要访问这个IP,我可以访问这个域名,通过DNS解析找到这个IP。
(这就是DNS最基本功能之一的正向解析)
而我想知道这个IP他到底绑定了多少个域名,可以通过DNS解析找个这些个域名。
(DNS另外一个比较少见的功能,反向解析)
网友评论