计网应用层浅记

1. 应用层协议原理

网络应用程序的核心:能够运行在不同端系统和通过网络彼此通信的程序

由于计算机网络层次结构分层的原因,我们在编写应用层程序的时候,不需要写在网络核心设备如路由器或链路层交换机上运行的软件

1.1 网络应用程序体系结构

应用程序体系结构:

  • 客户-服务器(C/S)体系结构
  • 对等(P2P)体系结构

C/S

在客户-服务器(C/S)体系结构,客户相互之间不直接通信

服务器的显著特点:

  • 固定的、周知的地址 IP地址
  • 总是打开的

客户总是能够通过向该服务器的IP地址发送分组来与其联系

具有数据中心,一个数据中心能够有数十万台服务器

P2P

高度非集中式结构

应用程序在间断连接的主机对之间使用直接通信,这些主机对被称为对等方

对等方不是任何一个ISP,相反可以是我们每个人的笔记本电脑或者手机

对等方之间的通信不必通过专门的服务器

1.2 进程通信

客户和服务器进程

网络应用程序由成对的进程组成,这些进程通过网络相互发送报文

在通信的过程中,客户与服务器其实并未有较为明显的界限,记住一个规则

发起通信的(即在该会话开始时发起与其他进程的联系)的进程被称为客户

在会话开始时,等待联系的进程是服务器

进程与计算机网络之间的接口

进程通过一个称为套接字(socket)的软件接口,向网络发送报文和从网络接收报文

可将进程类比为一座房子,而套接字就是它的门

在这里插入图片描述

如上图,套接字是同一台主机应用层与运输层之间的接口,也被称为应用程序和网络之间的API

进程寻址

在一台主机上运行的进程为了向另一台主机的进程发送分组,接收进程需要有一个地址

地址包括其 IP地址+端口号

1.3 运输服务

可靠数据传输:电子邮件、文件传输、远程主机访问、Web文档传输以及金融应用

容忍丢失:交谈式音频、视频

  • 可靠数据传输
  • 吞吐量
  • 定时
  • 安全性

1.4 应用层协议

定义了运行在不同端系统上的应用程序进程如何 相互传递报文,定义了:

  • 交换报文的类型,例如请求报文和响应报文
  • 各种报文类型的语法
  • 字段的语义
  • 确定一个进程何时以及如何发送报文,对报文进行响应的规则

2. Web和HTTP

2.1 HTTP概况

Web的应用层协议是超文本传输协议(HTTP),它是Web的核心

HTTP由两个程序实现:一个客户程序,一个服务器程序

客户程序和服务器程序运行在不同的端系统中,通过HTTP报文进行会话

HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户传送Web页面的方式

在这里插入图片描述

HTTP使用TCP作为它的支撑传输协议

如何理解HTTP是一个无状态协议

服务器向客户发送被请求的文件,而不存储客户的状态信息。假如某个客户在短短的几秒钟之内两次请求同一对象,服务器并不会因为刚刚为该客户提供了该对象就不再做出反应,而是重新发送该对象,就像服务器已经完全不记得之前做过的事一样。

HTTP服务器不会保存有关客户的任何信息


2.2 HTTP响应状态码及短语

状态码短语含义
200 OK请求成功,信息在返回的响应报文中
301 Moved Permanently请求对象被永久转移了,新的URL定义在响应报文的Location:首部行中
400 Bad Request一个通用的差错代码,指示该请求不能被服务器理解
404 Not Found被请求的文档不在服务器上
505 HTTP Version Not Supported服务器不支持请求报文使用的HTTP协议版本

2.3 Cookie

前面提到,HTTP是一个无状态的协议,这就存在一个问题。一个Web站点通常希望能够识别用户,可能是因为服务器希望限制用户的访问,或者它希望把内容和用户的身份联系起来,为此Cookie完美解决了这个问题

Cookie的四个组件

  • 在HTTP响应报文中的一个cookie首部行
  • 在HTTP请求报文中的一个cookie首部行
  • 在用户端系统中保留有一个cookie文件,并由用户的浏览器进行管理
  • 位于Web站点的一个后端数据库
    在这里插入图片描述

如图所示,在第一次访问Web服务器时,服务器在响应报文中返回一个唯一的cookie,在服务器中并将用户与cookie对应保存。在往后的访问中,浏览器会自动在请求报文的首部添加这个具有唯一性的,独属于一个用户的cookie。服务器在接收到这个请求报文,并识别它的cookie后,就能知识这个用户的历史访问信息。

参考资料

《计算机网络:自顶向下方法(原书第7版)》/(美)詹姆斯·F.库罗斯 ——北京:机械工业出版社,2018.5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeSlogan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值