第二章 网络应用

news2025/1/21 6:31:15

第一节 计算机网络应用体系结构

三种类型

1. 客户/服务器(c/s)结构

最主要的特征是通信只在客户与服务器之间进行,客户与客户之间不进行直接通信。

2. P2P(Peer to Peer) 结构

每个对等端都同时具备C/S应用的客户与服务器的特征,是一个服务器与客户的结合体,对等端之间直接通信。

3. 混合结构

既有中心服务器的存在,又有对等端(客户)间的直接通信。

第二节 网络应用通信基本原理

C/S通信基本原理:

服务器端运行的是服务器进程,被动地等待客户请求服务;客户端运行的是客户进程,主动发起通信,请求服务器进程提供服务。应用进程间遵循应用层协议交换应用层报文

第三节 域名系统(DNS)

层次树状结构的命名方法:

1. 国家顶级域名nTLD; ---- cn
2. 通用定义域名gTLD; ----- com net org edu gov
3. 基础结构域名。

*优点:便于分布式查询,存储和管理

二、 域名服务器:

1. 域名解析

将域名映射为IP地址的过程。

2. 域名服务器

为了实现域名解析,需要建立分布式数据库,存储网络中域名与IP地址的映射关系数,这些数据库存储再域名服务器上,域名服务器根据用户的请求提供域名解析服务。

分布式数据库: 是指多台域名服务器, 并且服务器之间相互合作

3. 域名服务器分类:

- 根域名服务器: 全球总共13台根域服务器

大多数根域服务器都是由独立的多台物理服务器构成的服务器集群,有的根域服务器则是由分布在不同地理位置的多台镜像服务器组成的.

  • 顶级域名服务器

  • 权限域名服务器

  • 本地域名服务器

三 域名解析过程

1. 递归查询:

代替查询主机或其他域名服务器,进行进一步的域名查询,并将最终解析结果发送给查询主机或服务器.

缺点: 若数据量大,解析过程会过长,根域服务器压力大

2. 迭代查询

只是将下一步要查询的服务器告知查询主机(客户端)或服务器.

优点: 根域服务器压力减少

第四节 万维网应用

Web服务器

浏览器

超文本传输协议(HTTP)

二、HTTP

概念:超文本传输协议,定义浏览器如何向Web服务器发送请求以及Web服务器如何向浏览器进行响应

版本L:HTTP/1.0和HTTP/1.1

HTTP连接:非持久连接、持久连接

非持久连接:

串行方式请求每个对象都要新建立TCP连接

缺点:耗时

并行连接:

并行方式请求每个对象每个建立一个TCP连接

非流水方式持久连接:
流水方式持久连接:

两者都是建立一个TCP连接,传入多个对象

HTTP报文:

请求报文 -------- 从客户向服务器发送请求报文。

响应报文 --------- 从服务器到客户的回答。

HTTP请求报文: HTTP典型的请求方式有GET\HEAD\POST\OPTION\PUT等。

  1. GET:请求读取URL所标识的信息

  2. HEAD:请求读取由URL所标识的信息首部,无须在响应报文中包含对象。

  3. POST:给服务器添加信息

  4. OPTION:给服务器添加一些选项的信息

  5. PUT:在指明的URL下存储一个文档

HTTP响应报文:

HTTP状态码分类:

三、Cookie:

Cookie中文名称为小文件文本文件,指某些网站为了辨别用户身份、进行会话跟踪而存储在用户本地终端上的数据。

弥补了HTTP协议无状态性的不足,有利于进行用户跟踪并提供针对性的服务,但也带来一些安全问题。

第五节 Internet电子邮件

一、电子邮件系统结构

电子邮件系统主要包括邮件服务器、简单邮件传输协议(STMP)、用户代理和邮件读取协议等。

二、SMTP:

SMTP是internet电子邮件中核心应用层协议,实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输。SMTP使用传输层TCP实现可靠数据传输,端口号25. SMTP通过3个阶段的应用层交互完成邮件的传输,分别是握手阶段邮件传输阶段关闭阶段

SMTP的基本交互方式是SMTP客户端发送命令,命令后面可能携带参数,SMTP服务器对命令进行应答。

三、电子邮件格式与MIME

  1. 电子邮件包括首部、空白行、主体三部分。

To、Subject、Cc、From、Date、Replay-To等关键词。

  1. MIME(多用途互联网邮件扩展)

将非7为ASCII码文本内容转化为7为ASCII码文本内容,然后在利用SMTP进行传输

在邮件首部增加MIME首部行,说明主题内容原本的数据类型以及采用的编码标准等

四、邮件读取协议

  1. 第三版邮局协议(pop3)

客户端把邮件下载下来,对邮件进行操作

是本地进行的

不需要网络

  1. 互联网邮件访问协议(IMAP)

通过互联网来操作邮件

需要网络

  1. HTTP

不需要依赖邮件客户端软件,只需要浏览器即可

第六节 FTP

文件传送协议(FTP):在互联网的两个主句间实现文件互传的应用层协议

C/S模式。采用控制连接(21端口)传输控制命令,数据连接(20端口)传输文件内容。

第七节 P2P应用

一、P2P应用的优势:

充分聚集利用了端系统(对等方主机)的计算能力以及网络传入带宽,对服务器的依赖性小。

适合大用户量的,大数据量的系统

第八节 Socket编程基础

Socket接口模型:

网络应用进程通信时需要通过API接口请求底层协议的服务。可以创建数据报类型套接字SOCK_DGRAM流式套接字SOCK_STREAM原始套接字SOCK_RAW

UDP:不可靠,高速的 SOCK_DGRAM

TCP:可靠的,效率高的,稳定的 SOCK_STREAM

SOCK_RAW:直接调用网络层服务,不在依赖传输层的服务

基于TCP的Socket编程

客户端不创建特定端口,通过socket来创建临时接口

基于UDP的Socket编程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1007361.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python算法练习 9.12

leetcode 643 子数组最大平均数 给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。 请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。 任何误差小于 10-5 的答案都将被视为正确答案 输入:nums [1,12,-5,-6,50,3], k 4 输出…

buuctf web [极客大挑战 2019]Secret File

纯网页,看一下源码。 这一块源码中有个隐藏的超链接,点击后跳转到了新页面。 新页面的源码里,也有一处可以跳转的超链接。 点进新页面啥也没有了。 单看网页,什么也没有,尝试用burp抓包试试。 在/Archive_room.php跳…

循环语句详解

文章目录 循环语句详解1. 循环使用 v-for 指令2. v-for 还支持一个可选的第二个参数,参数值为当前项的索引3. 模板template 中使用 v-for4. v-for 迭代对象-第一个参数为value5. v-for的第二个参数为键名6. v-for的第三个参数为索引7. v-for迭代整数8. computed计算…

运营商大数据精准营销获客?

多年来,大数据运营商一直致力于为企业提供互联网大数据精准营销的新项目,并以确保自身信息安全为前提。例如,如果移动用户查看了任何网站,在网页上搜索了任何关键词,登录了应用程序,给任何人打了电话&#…

【Linux】多线程互斥与同步

文章目录 一、线程互斥1. 线程互斥的引出2. 互斥量3. 互斥锁的实现原理 二、可重入和线程安全三、线程和互斥锁的封装1. 线程封装1. 互斥锁封装 四、死锁1. 死锁的概念2. 死锁的四个必要条件3. 避免死锁 五、线程同步1. 线程同步的理解2. 条件变量 一、线程互斥 1. 线程互斥的…

kaggle近三年NLP比赛top方案汇总及新赛推荐

NLP的赛题任务主要有文本分类、情感分析、关系抽取、文本匹配、阅读理解、问答系统等,自Google开发的NLP处理模型BERT被广泛应用后,目前解决NLP任务的首选方案就是深度学习方法(textCNN、LSTM、GRU、BiLSTM、Attention等)&#xf…

CSS 纵横比属性:aspect-ratio

CSS 属性 aspect-ratio 为盒子规定了纵横比(宽高比),这个纵横比可以用于计算 auto 尺寸以及其他布局函数。

《算法竞赛·快冲300题》每日一题:“点灯游戏”

《算法竞赛快冲300题》将于2024年出版,是《算法竞赛》的辅助练习册。 所有题目放在自建的OJ New Online Judge。 用C/C、Java、Python三种语言给出代码,以中低档题为主,适合入门、进阶。 文章目录 题目描述题解C代码Java代码Python代码 “ 点…

如何通过局域网共享文件

需求环境:公司有多个部门,不同用户与部门使用不同文件 业务背景:一台windows服务器,若干客户端 需要技能: 熟悉windows系统管理, 包含计算机管理、 硬盘硬件、 用户管理、 share and storage management 项目方案…

系统架构设计专业技能 · 软件工程之UML建模设计

现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 点击进入系列文章目录 系统架构设计高级技能 软件工程之UML建模设计 一、需求分析 - UML图二、用例图2.…

黑马JVM总结(六)

(1)常量池 方法区的组成中都由一个叫做运行时常量池的部分,内部包含一个叫做StringTable的东西 反编译二进制字节码: 类的基本信息: 常量池: 方法定义: 构造方法 main方法 :方法中…

NS6326 4-30V 输入 5V/3A 输出同步降压稳压器芯片

NS6326 4-30V 输入 5V/3A 输出同步降压稳压器芯片 1 特性  宽输入电压范围:4V-30V  效率可高达 92%以上  超高恒流精度:5%  恒压精度:5%  无需外部补偿  开关频率:130kHz  输入欠压/过压、输出短路和过热保护  SO…

驱动开发--自动创建设备节点udev机制的实现过程

一、udev的认识 udev:自动创建设备节点的机制&#xff0c;创建设备节点的逻辑在用户空间 二、udev机制创建设备节点的过程分析 三、目录信息创建和删除类函数 #include<linux/device.h> 1.向上提交目录信息 struct class * class_create(struct module *owner,const c…

牛客:小美的01串翻转

小美的01串翻转 #include<iostream> #include<cstring> #include<string> #include<vector>using namespace std; typedef long long ll; const int N 1100; string s; ll res 0;int main() {cin>>s;int n s.size();vector<vector<in…

spice VDAgent简介

vdagent分为linux和windows&#xff0c;其中Linux分为vdagent守护进程和vdagent客户端进程&#xff0c;而windows主要为vdagent服务。 在windows中&#xff0c;通过服务方式自启动&#xff0c;并控制windows显示等。 在linux中&#xff0c; 守护进程通过 Sys-V initscript 或 s…

ChatGPT追祖寻宗:GPT-2论文要点解读

论文地址&#xff1a;Language Models are Unsupervised Multitask Learners 上篇&#xff1a;GPT-1论文要点解读 在上篇&#xff1a;GPT-1论文要点解读中我们介绍了GPT1论文中的相关要点内容&#xff0c;其实自GPT模型诞生以来&#xff0c;其核心模型架构基本没有太大的改变&a…

线程安全问题(3)--- wait(),notify()

前言 在多线程的环境下&#xff0c;我们常常要协调多个线程之间的执行顺序&#xff0c;而为了实现这一点&#xff0c;Java提供了一些方法来帮助我们完成这一点。 一&#xff0c;wait() 作用&#xff1a; 使当前线程进入等待状态 释放当前的锁 (即该方法必须和 synchrnized 关键…

【02】Charles_Breakpoints给接口设置断点

目录 1.适用场景&#xff1a; 2.操作步骤 3.实现效果 ​编辑 1.适用场景&#xff1a; 测试工作中&#xff0c;有些接口的请求or响应数据不符合预期&#xff0c;需要mock一些数据时&#xff0c;需要修改接口的request请求参数、response响应数据。 就可以借助断点实现。 …

探访天府蜂巢成都直播基地,全成都前十的直播产业供应链都在这!

随着新一轮科技革命和产业变革深入发展&#xff0c;数字化转型已经成为大势所趋。成都直播基地作为数字经济创新发展的前沿和焦点&#xff0c;为产业转型升级和数字经济发展提供核心驱动力。 “直播”新业态新模式的兴起&#xff0c;显示出强大的潜力和活力&#xff0c;树莓集团…

《动手学深度学习 Pytorch版》 4.8 数值稳定性和模型初始化

4.8.1 梯度消失和梯度爆炸 整节理论&#xff0c;详见书本。 梯度消失 %matplotlib inline import torch from d2l import torch as d2lx torch.arange(-8.0, 8.0, 0.1, requires_gradTrue) y torch.sigmoid(x) y.backward(torch.ones_like(x))d2l.plot(x.detach().numpy()…