• 网络通信架构


     BS架构/CS架构


    使用协议分别对应:  TCP / HTTP

    在计算机网络和软件开发中,CS架构(Client-Server Architecture,客户端-服务器架构)和BS架构(Browser-Server Architecture,浏览器-服务器架构)是两种主要的应用程序架构。
     


    CS架构(客户端-服务器架构)


    CS架构是一种典型的两层结构,包括客户端和服务器两个部分。在这种架构中,客户端和服务器通过网络进行通信,每部分都有明确的职责。


    1. 客户端:
    用户界面通常在客户端呈现。
    可以是桌面应用程序、移动应用或专用软件。
    负责向服务器发送请求,接收和处理服务器响应。
    2. 服务器:
    管理数据和业务逻辑。
    处理来自客户端的请求,并发送回响应。
    通常承载在远程系统上,如数据库服务器、应用服务器等。
    3. 特点:
    需要为每种操作系统或平台单独开发客户端。
    高效的数据处理和响应能力。
    在客户端设备上占用资源(如内存和处理能力)。

    BS架构(浏览器-服务器架构)


    BS架构是一种基于Web的三层或多层架构,主要通过Web浏览器作为客户端访问服务器上的应用程序。

    1. 浏览器(客户端):
    使用标准Web浏览器(如Chrome、Firefox等)作为客户端。
    无需安装额外的软件,使用HTML、CSS和JavaScript显示内容。
    2. 服务器:
    和CS架构中的服务器类似,处理业务逻辑和数据存储。
    通过Web服务(如HTTP服务器)提供页面和数据。
    3. 特点:
    跨平台兼容性强,可以在任何支持Web浏览器的设备上运行。
    客户端无需安装专用软件,容易维护和更新。
    可能依赖网络性能,因为所有操作都在服务器上进行。


    对比


    部署和维护:BS架构易于部署和维护,而CS架构通常需要在每个客户端单独安装和更新。
    性能:CS架构可以更有效地利用客户端的计算资源,适合高性能要求的应用。BS架构依赖于服务器的性能和网络延迟。
    安全性:CS架构中,数据经常在客户端和服务器之间传输,可能需要更复杂的安全措施。BS架构
    中,敏感数据主要存储在服务器端。
    用户体验:CS架构通常能提供更丰富的用户界面和交互功能。BS架构的用户体验受限于Web技术的能力。
     

    TCP协议



    基本概念


    TCP(传输控制协议)是一种广泛使用的网络通信协议,设计用于在网络中的计算机之间可靠地传输数据。它是互联网协议套件的核心部分,通常与IP(互联网协议)一起使用,合称为TCP/IP。

    TCP协议的基本特点:


    1. 面向连接:在数据传输之前,TCP 需要在发送方和接收方之间建立一个连接。这包括三次握手过程,确保两端都准备好进行数据传输。
    2. 可靠传输:TCP 提供可靠的数据传输服务,这意味着它保证数据包准确无误地到达目的地。如果发生数据丢失或错误,TCP 会重新发送数据包。
    3. 顺序控制:TCP 保证数据包的传输顺序。即使数据包在网络中的传输顺序被打乱,接收方也能按照正确的顺序重组这些数据。
    4. 流量控制:TCP 使用窗口机制来控制发送方的数据传输速率,以防止网络过载。这有助于防止接收方被发送方发送的数据所淹没。
    5. 拥塞控制:TCP 还包括拥塞控制机制,用来检测并防止网络拥塞。当网络拥塞发生时,TCP 会减少其数据传输速率。
    6. 数据分段:大块的数据在发送前会被分割成更小的段,以便于传输。这些段会被独立发送并在接收端重新组装。
    7. 确认和重传:接收方对成功接收的数据包发送确认(ACK)信号。如果发送方没有收到确认,它会重传丢失的数据包。
    8. 终止连接:数据传输完成后,TCP 连接需要被正常关闭,这通常涉及到四次挥手过程。

    TCP 适用于需要高可靠性的应用,如网页浏览、文件传输、电子邮件等。然而,由于它的这些特性,TCP在处理速度上可能不如其他协议(如UDP)那么快速。


    TCP协议中的三次握手和四次挥手是建立和终止连接的重要过程。下面是它们的简要描述:


    三次握手(建立连接)


    三次握手的主要目的是在两台设备之间建立一个可靠的连接。它包括以下步骤:
    1. SYN:客户端向服务器发送一个SYN(同步序列编号)报文来开始一个新的连接。此时,客户端进入SYN-SENT状态。
    2. SYN-ACK:服务器接收到SYN报文后,回复一个SYN-ACK(同步和确认)报文。此时服务器进入SYN-RECEIVED状态。
    3. ACK:客户端接收到SYN-ACK后,发送一个ACK(确认)报文作为回应,并进入ESTABLISHED(已建立)状态。服务器在收到这个ACK报文后,也进入ESTABLISHED状态。这标志着连接已经建立。

    四次挥手(断开连接)


    四次挥手的目的是终止已经建立的连接。这个过程包括以下步骤:
    1. FIN:当通信的一方完成数据发送任务后,它会发送一个FIN(结束)报文来关闭连接。发送完FIN报文后,该方进入FIN-WAIT-1状态。
    2. ACK:另一方接收到FIN报文后,发送一个ACK报文作为回应,并进入CLOSE-WAIT状态。发送FIN报文的一方在收到ACK后,进入FIN-WAIT-2状态。
    3. FIN:在等待一段时间并完成所有数据的发送后,CLOSE-WAIT状态的一方也发送一个FIN报文来请求关闭连接。
    4. ACK:最初发送FIN报文的一方在收到这个FIN报文后,发送一个ACK报文作为最后的确认,进入TIME-WAIT状态。经过一段时间后,确保对方接收到了最后的ACK报文,该方最终关闭连接。
    在这两个过程中,三次握手主要确保双方都准备好进行通信,而四次挥手则确保双方都已经完成通信并同意关闭连接。

    HTTP协议


    //抓取到的原始数据就是html

    基本概念

    HTTP(超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。它是万维网(WWW)的数据通信的基础。了解HTTP的基本概念对于理解现代网络通信至关重要。以下是HTTP的一些核心概念:


    1. 请求和响应


    HTTP是一个基于请求-响应模式的协议。客户端(通常是Web浏览器)向服务器发送一个HTTP请求,然后服务器返回一个HTTP响应。请求包含请求的资源(如网页),而响应包含请求的资源的内容。


    2. HTTP方法


    HTTP定义了一系列的方法来表明对资源的不同操作,最常用的包括:get,post
    GET: 用于请求资源。
    POST: 用于提交数据给服务器(例如,表单数据)。
    PUT: 用于上传文件或内容。
    DELETE: 用于请求删除资源。
    HEAD: 用于获取资源的元信息,而不是资源本身。


    3. 状态码


    服务器对请求的响应中包含一个状态码,它表示请求的成功或失败,以及失败的原因。常见的状态码包括:
    200 OK: 请求成功。
    404 Not Found: 请求的资源未找到。
    500 Internal Server Error: 服务器内部错误
    301 Moved Permanently: 请求的资源已永久移动到新位置。


    4. URL(统一资源定位符)


    URL是Web上资源的地址。它指定了资源的位置以及用于访问资源的协议(例如,http://)。

    5. HTTP头


    HTTP请求和响应包含头部信息,这些信息包括元数据,如内容类型、内容长度、服务器信息、客户端信息等。例如, Content-Type 头部指示响应中的媒体类型(如text/html,application/json)。

    6. 无状态协议


    HTTP是一个无状态协议,这意味着服务器不会保留任何请求的数据(状态)。然而,通过使用如
    Cookies这样的机制,可以在多个请求之间维持状态。

    7. 安全性(HTTPS)


    HTTPS是HTTP的安全版本,它在HTTP和TCP层之间增加了一个加密层(通常是SSL/TLS)。这提供了数
    据传输的加密和更好的安全性。

    8. RESTful API


    RESTful是一种使用HTTP协议的Web服务设计风格,它利用HTTP的方法来实现API的不同操作。在RESTful架构中,每个URL代表一个资源,并使用HTTP的方法(如GET, POST)来处理这些资源。

    9. Session和Cookies


    由于HTTP本身是无状态的,Cookies和会话(Session)被用来在多个请求之间存储用户数据,从而为用户提供连贯的体验。这些概念构成了HTTP的基础,是理解和使用HTTP协议的关键。每个概念都有它的具体细节和使用场景,了解这些有助于更好地在网络应用开发中应用HTTP。

    JSON


    JSON概述:

    常用网址: json.cn  -- 将常用原始数据解析为json格式

     https://www.json.cn/

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它易于人阅读和编写,同时也易于机器解析和生成。JSON是基于JavaScript的一个子集,尽管它是独立于语言的,且有多种语言支持。JSON常用于网络应用程序中的数据传输,尤其是在Web应用程序中与后端服务器通信。


    JSON优势(使用原因)

    不同编程语言处理JSON的方案

  • 相关阅读:
    国际土壤模型协会 International Soil Modeling Consortium-ISMC
    Mysql.慢Sql
    JavaSE_day39(接上File:获取,修改,数组形式获取,获取目录下的java文件,删除目录。回顾以及深入完整介绍IO,使用字符、字节复制文本文件)
    基于小程序制作一个猜拳小游戏
    node篇 CommonJS规范
    设计模式——结构型模式(静态代理、JDK动态代理)
    L. Paid Leave(贪心)[CCPC Finals 2021]
    基于实例的学习方法
    Unity打包出来的APK文件有问题总结
    小波变换技术在图像压缩和重建中的应用研究-含Matlab代码
  • 原文地址:https://blog.csdn.net/mx_jun/article/details/139726008