首页 > 其他分享 >应用层(一)

应用层(一)

时间:2023-03-13 15:47:01浏览次数:41  
标签:Web HTTP 网络应用 TCP 进程 服务器 应用层

 Internet 的整个体系结构是符合TCP/IP协议栈的,应用层在协议栈的最上层。

application

transport

network

link

physical

 网络应用体系结构

*客户机/服务器

*P2P

*混合结构

网络应用的服务需求

*可靠性

*带宽

*时延

Internet传输层服务模型

*TCP

*UDP

特定网络应用及协议

*HTTP

*SMTP、POP、IMAP

*DNS

*P2P应用

Socket编程

*TCP

*UDP

 


 

网络应用的体系结构

你使用过哪些网络应用?百度、QQ、email、迅雷、微信、支付宝、百度云、淘宝网

与单机应用有哪些本质性的不同?网络应用需要网络基础环境,有一部分软件是跑在我们自己计算机上,比如浏览器;还有一部分软件以及数据信息等等,跑在互联网的某一个地方,某些硬件服务器上。这两个软件会互相交互,才共同构成了一个网络应用。这个是网络应用和单机应用的不同之处。

客户机/服务器结构(Clinet-Server,C/S)

点对点结构(Peer-to-Peer,P2P)

混合结构(Hybrid)

客户机/服务器结构(Clinet-Server,C/S)

 

服务器:

*7*24小时提供服务

*永久性访问地址/域名

*利用大量服务器实现可扩展性

 客户机:

*与服务器通信,使用服务器提供的服务

*间歇性接入网络

*可能使用动态IP地址

*不会与其他客户机直接通信

 

 

纯P2P结构

 

 

*没有永远在线的服务器

*任意端系统/节点之间可以直接通信

*节点间歇性接入网络

*节点可能改变IP地址

 优点:高度可伸缩

缺点:难于管理

 

混合结构

能否将两种结构混合在一起使用?

混合能够利用两者的优点同时规避两者的缺点吗?

*Napster

文件传输使用P2P结构

文件的搜索采用C/S结构——集中式

   每个结点向中央服务器登记自己的内容

   每个结点向中央服务器提交查询请求,查找感兴趣的内容

 


 

网络应用进程通信

*进程:

主机上运行的程序

*同一主机上运行的进程之间如何通信

进程间通信机制

操作系统提供

*不同主机上运行的进程间如何通信

消息交换

 

采用P2P架构的应用是否存在客户机进程/服务器进程之分?

套接字

 

*进程间通信利用socket发送/接收消息实现

*类似于寄信

 发送方将消息送到门外邮箱

 发送方依赖(门外的)传输基础设施将消息传到接收方所在主机,并送到接收方的门外。

 接收方从门外获取消息

*传输基础设施向进程提供API (传输基础设施是我们进程间通信所依赖的东西,它是由网络协议栈构成,一般我们所有操作系统都是网络化操作系统,这相当于是操作系统提供的关于网络编程的API:SOCKET。开发网络应用要调用这些API,使用SOCKET,所以网络应用的开发也叫SOCKET编程。)

 

 传输协议的选择

 参数的设置

 

如何寻址进程?

*不同主机上的进程通信,那么每个进程必须拥有标识符

*如何寻址主机——IP地址

Q:主机有了IP地址后,是否足以定位进程?

A:否。同一主机上可能同时有多个进程需要通信

*端口号/Port number

为主机上每个需要通信的进程分配一个端口号

HTTP Server:80

Mail Server:25

*进程的标识符

ip地址 + 端口号

 

 

 

应用层协议

*网络应用需遵循应用层协议

*公开协议

由RFC(Request For Comments)定义

允许互操作

HTTP、SMTP……

 

*私有协议

多数P2P文件共享应用

 

应用层协议的内容

*消息的类型(type)

请求响应

响应消息

*消息的语法(Syntax)/格式

消息中有哪些字段(field)?

每个字段如何描述?

*字段的语义(Semantics)

字段中信息的含义

规则(Rules)

进程何时发送/响应消息

进程如何发送/响应消息

 


 

Web应用的概述

Web与HTTP

*World Wide Web:Tim Berners-Lee

网页

网页互相链接

*网页(Web Page)包含多个对象(objects)

对象:HTML文件、JPEG图片、视频文件、动态脚本等

基本HTML文件:包含对其它对象引用的链接

*对象的寻址

URL (Uniform Resoure Locator): 统一资源定位器   RFC1738

Scheme://host:port/path

 

 

 

HTTP协议概述

*万维网应用遵循什么协议?

*超文本传输协议

HyperText Transfer Protocol

*C/S结构

客户——Browser:请求、接收、展示Web对象

服务器——Web Server:响应客户的请求,发送对象

*HTTP版本

1.0:RFC1945

1.1:RFC2068

 

 

 *使用TCP传输服务

服务器在80端口等待客户的请求

浏览器发起到服务器的TCP连接(创建套接字Socket)

服务器接受来自浏览器的TCP连接

浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息

关闭TCP连接

*无状态(stateless)

服务器不维护任何有关客户端过去所发请求的信息

 

 


 

 

HTTP连接的两种类型

 

 

 

 

 

 

 

 

 

 


 

 

HTTP请求消息

 

 

第一行:请求行

  `第一部分:请求命令。get是一个请求方法(get/post/head……)。后面是url + http版本

第二行:头部行

  TCP连接建立,还要声明访问的主机码?答:有用信息:缓存和代理服务器时使用此信息。

第三行:代表浏览器。告诉服务器后,服务器有可能针对浏览器类型发送适合你的那个版本

第四行:发完这个之后可以把TCP连接关闭了

第五行:法语

 

HTTP请求消息的通用格式

 

 

 

 

 

 

 

 

 

 

 

 

head:做测试用的

delete和put互相对应

 

 

 

响应消息是用ASCII写的,可以直接读

第一行:状态行。告诉状态代码。

第二行等等:头部行。

  date:Web服务器生成响应消息的时间

  last-modified:上次修改时间

  server:web服务器软件是阿帕奇。感兴趣的话可以装机,假设一个Web服务。

  content-length:内容长度

  content-type:文本类型

 

 

 


 

 

COOKIE技术

HTTP是一种无状态的,服务器不记录客户的历史行为,带来一些问题:

很多应用需要服务器掌握客户端的状态,如网上购物

 

 

 

头部行是可扩展的,cookie是后发明的

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:Web,HTTP,网络应用,TCP,进程,服务器,应用层
From: https://www.cnblogs.com/Pekoe-blackTea/p/17205146.html

相关文章

  • 11-应用层-HTTPs
    1.QuickStartHTTPS(HyperTextTransferProtocoloverSecureSocketLayer)超文本传输安全协议1.1与HTTP的区别?HTTP是超文本传输协议,信息是明文传输,存在安全风......
  • 09-应用层-DNS&FTP&Telnet
    1.应用层在前五章我们已经详细地讨论了计算机网络提供通信服务的过程。但是我们还没有讨论这些通信服务是如何提供给应用进程来使用的。本章讨论各种应用进程通过什么样......
  • Windows驱动开发学习记录-应用层打开设备符号链接在不同系统的区别
    驱动层创建{......UNICODE_STRINGusMyControlDevice=RTL_CONSTANT_STRING(MY_CONTROL_DEVICE_NAME); ntStatus=IoCreateDevice(pDriverObject,NULL,......
  • AndroidQ 打通应用层到HAL层(转)
    1.参考https://blog.csdn.net/qq_34211365/category_9903135.html直通式,绑定式,从应用端调到hal接口,亲自实现能够更加理解 ......
  • 汽车ECU软件开发之应用层软件与底层软件
    随着汽车产品日渐趋向电子化,人们对各类先进的安全系统、高级驾驶辅助系统的接受程度日益提升。而原本昂贵的盲点检测、自动紧急制动等功能的成本下滑,使其快速获得了市场青......
  • 网工应用层:代理(Proxy)和代理模式
    本文只讲解科学知识。我这里也不好贴出参考资料......至于原因你们懂得。创建一般情况下的网络环境(不使用代理)一般来讲,我们在运营商购买了宽带之后,都会配备到一个光......
  • 基于CANoe和Visual Studio实现Classic 和Adaptive AUTOSAR应用层调试
    “转载自维克多汽车技术(上海)有限公司,作者VectorChina”伴随“软件化”和“敏捷化”的推进,从基于域(Domain)架构到基于区域(Zonal)架构的发展,亦或OEM成立软件中心参与软件开发......
  • 应用层-上
    概述:网络应用的体系结构:1.Client/Server客户机服务器结构,服务器运行服务器软件。(web)2.peertopeer 点对点结构:没有永远在线的服务器,结......
  • 计算机网络之应用层-FTP、P2P、Socket编程
    1.FTPFTP即文件传送协议(FileTransferProtocol),用于在互联网的两个主机间实现文件互传的网络应用的应用层协议。FTP的服务器进程由两大部分组成:1.主进程, 负责接受新......
  • 计算机网络-应用层协议
    前言:本章将介绍关于应用层的协议,如下图所示一、应用协议的概要利用网络的应用程序有很多,包括Web浏览器、电子邮件、远程登陆、文件传输、网络管理等,能够让这些应用进行通......