CSC8021_computer network_The Application Layer

news2024/11/17 23:36:25

在这里插入图片描述

The Role of the Application layer

The Application layer is the interface between the network and its users
› It contains network services (e.g. DNS)
› It contains user applications (e.g. email, web browsing)

Domain Name System (DNS)

› The Domain Name System (DNS) is the phonebook of the Internet. Humans access information online through domain names, like nytimes.com or espn.com.
› Web browsers interact through Internet Protocol(IP) addresses. DNS translates domain names to IP addresses so browsers can load Internet resources.
›域名系统(DNS)是互联网的电话簿。人们通过域名访问在线信息,如nytimes.com或espn.com。
› Web浏览器通过互联网协议(IP)地址进行交互。DNS将域名转换为IP地址,以便浏览器可以加载Internet资源。

在这里插入图片描述

DNS names

› DNS name space is hierarchical staring from the root (often omitted)
› Name space is divided into zones. At least one DNS name server exists in each zone
› A DNS name server knows about its children (all hosts in its zone) and its parent (higher level DNS server).
› Top level domains are in the highest hieratical level after root
› DNS名称空间是从根开始的层次结构(通常省略)
›命名空间被划分为多个区域。每个区域中至少存在一个DNS名称服务器
DNS名称服务器知道它的子服务器(它所在区域中的所有主机)和它的父服务器(更高级别的DNS服务器)。
›顶级域名位于根之后的最高层次
在这里插入图片描述在这里插入图片描述› Finding the IP address for a given hostname is called resolution and is done with the DNS protocol
› E.g. Host A (flits.cs.vu.nl) wants the IP address of Host B(robot.cs.washington.edu)
›查找给定主机名的IP地址称为解析,通过DNS协议完成
›例如,主机A(flits.cs.vu.nl)想要主机B(robot.cs.washington.edu)的IP地址
在这里插入图片描述1. Originating host contacts its local DNS name server
2. Local name server asks the root name server
3. Root returns the name server for a lower zone
4. Continue down zones until name server completes resolution and returns the final answer
› The query can be cache for future uses (including partial answers)
1.发起主机联系其本地DNS名称服务器
2.本地名称服务器询问根名称服务器
3. Root返回较低区域的名称服务器
4.继续向下分区,直到名称服务器完成解析并返回最终答案
›查询可以缓存以备将来使用(包括部分答案)

Email (Electronic mail)

› User agents: allow people to read and send email (e.g. MS Outlook).
› Message transfer agents: move the messages from the source to the destination (e.g. MS Exchange).
在这里插入图片描述› Mail is transferred from source host to destination mail server by a message transfer agent using SMTP (Simple Mail Transfer Protocol).
› Mail is transferred from destination mail server to destination host by a user agent using POP3 (Post Office Protocol,version3) or IMAP (Internet Message Access Protocol)
›邮件由邮件传输代理使用SMTP(简单邮件传输协议)从源主机传输到目标邮件服务器。
›邮件由用户代理使用POP3(邮局协议,版本3)或IMAP(Internet消息访问协议)从目标邮件服务器传输到目标主机

Message format (text)

› Message sent by the user agent must be placed in a standard form (RFC 822) to be handled by the message transfer agent
›用户代理发送的消息必须以标准格式(RFC 822)放置,以便由消息传输代理处理
在这里插入图片描述

SMTP (a “push” protocol)

Example of the transfer of a message from source host elinor@abcd.com ©
to destination mailbox carolyn@xyz.com (S):

  1. Source contacts destination
  2. Mailbox says it is ready
  3. Source identifies itself
  4. Mailbox accepts
  5. Source identifies recipient
  6. Mailbox recognizes recipient
  7. Negotiate any parameters
  8. Source sends email
  9. Mailbox accepts email
  10. Source terminates conversation
    在这里插入图片描述

POP3 ( a “pull” protocol)

Example of retrieving messages from destination mailbox (S) to destination
host ©:

  1. Destination identifies user
  2. Mailbox recognizes user
  3. Destination supplies password
  4. Mailbox accepts password
  5. Destination requests message list
  6. Mailbox sends message list
  7. Destination requests message 1
  8. Mailbox sends message 1
  9. Destination deletes message 1 from ISP mailbox (optional)

  10. Destination terminates conversation
    在这里插入图片描述

World Wide Web

› The Web is an architectural framework for accessing linked content (Web pages) spread out over millions of machines all over the Internet
› Most pages are written in HTML. They are viewed with a program called a browser (e.g. MS Explorer or Chrome)
› Page may contain links to other pages called hypertext
› A piece of text, icon, image associated with another page is called a hyperlink
› HTTP (HyperText Transfer Protocol) is used to fetch pages. It is a simple text-based protocol that runs over TCP
Web是一个架构框架,用于访问分布在Internet上数百万台机器上的链接内容(Web页面)。
大多数页面都是用HTML编写的。它们是通过一个名为浏览器的程序(例如MS Explorer或Chrome)查看的
›页面可能包含指向其他页面的链接,称为超文本
›与另一个页面相关联的文本、图标、图像称为超链接
› HTTP(超文本传输协议)用于获取页面。它是一个简单的基于文本的协议,在TCP上运行

› Pages are named with URLs (Uniform Resource Locators) (e.g. http://www.cs.washington.edu/index.html)
› This URL consists of three parts:
• Part before 😕/ specifies application/protocol (e.g. http)
• Part after 😕/ specifies the DNS name of the target host (e.g.www.cs.washington.edu)
• and the path (file) name (e.g. index.html)
›页面以URL(统一资源定位器)命名(例如http://www.cs.washington.edu/index.html)
›此URL由三部分组成:
· Part before://指定应用程序/协议(例如http)
· Part after://指定目标主机的DNS名称(e.g.www.cs.washington.edu)
·路径(文件)名称(例如index.html)
在这里插入图片描述› What happens when you click a link?
在这里插入图片描述

Client (browser)

› Browser understands html (hypertext mark-up language)
› Steps a client (browser) takes to follow a hyper link:

  1. Determine the URL (and protocol used).
  2. Ask DNS for the IP address of the server
  3. Make a TCP connection to server
  4. Send an HTTP request for the page /index.html, server sends the page as an HTTP response,
  5. Fetch other URLs as needed to display the page.
  6. Close idle TCP connections
    ›浏览器理解html(超文本标记语言)
    ›客户端(浏览器)跟踪超链接的步骤:
    1.确定URL(和使用的协议)。
    2.向DNS请求服务器的IP地址
    3.建立到服务器的TCP连接
    4.发送对页面/index. html的HTTP请求,服务器将页面作为HTTP响应发送,
    5.根据需要获取其他URL以显示页面。
    6.关闭空闲的TCP连接

› Browser uses plug-ins or helper applications to handle specific file types referenced by html web pages e.g. audio, video
›浏览器使用插件或助手应用程序来处理HTML网页引用的特定文件类型,例如音频,视频
在这里插入图片描述

Server

› Main steps a server takes to serve pages (Modern Web servers have more features):

  1. Accept TCP connection from a client (browser)
  2. Get the path to the page, which is the name of the file requested
  3. Get the resource (e.g. file from disk)
  4. Send contents of the resource to the client
  5. Release the TCP connection
    › Web servers can use caching, multiple threads, and a front end to scale performance
    ›服务器提供页面服务的主要步骤(现代Web服务器具有更多功能):
    1.接受来自客户端(浏览器)的TCP连接
    2.获取页面的路径,即所请求文件的名称
    3.获取资源(例如从磁盘获取文件)
    4.将资源的内容发送到客户端
    5.释放TCP连接
    › Web服务器可以使用缓存、多线程和前端来扩展性能
    在这里插入图片描述

HTTP protocol

› HTTP has several request methods
在这里插入图片描述› And reply (Response) codes
在这里插入图片描述

HTTP message header

在这里插入图片描述

Cookies

Used to store state information so a returning user can resume a session
› First-party cookies are directly stored by the website you are on (e.g. login IDs,passwords, credit card numbers)
› Third-party cookies are transmitted to websites other than the one you are on(e.g. tracking Internet usage for marketing purposes)
用于存储状态信息,以便返回的用户可以继续会话
›第一方Cookie直接存储在您访问的网站上(例如登录ID、密码、信用卡号)
›第三方Cookie传输到您所在网站以外的网站(例如,出于营销目的跟踪互联网使用情况)
在这里插入图片描述

Static web pages

› Static Web pages are simply files. Have the same contents for each viewing
› Can be visually rich and interactive nonetheless (e.g. HTML that mixes text and images, forms that gather user input)
› Html pages describe both content and formatting. Makes it difficult to achieve consistent look and feel across a large website (CSS introduced style sheets to the Web with HTML 4.0)
静态网页只是文件。每次观看的内容相同
›可以是视觉丰富和交互式的(例如,混合文本和图像的HTML,收集用户输入的表单)
HTML页面描述内容和格式。很难在一个大型网站上实现一致的外观和感觉(CSS通过HTML 4.0将样式表引入Web)
在这里插入图片描述

Dynamic web pages

› Dynamic pages are generated dynamically by programs running at the server (with a database) and the client
› E.g. PHP at server, JavaScript at client
› Pages vary each time like using an application
动态页面由运行在服务器(带有数据库)和客户端的程序动态生成
›例如服务器端的PHP,客户端的JavaScript
›页面每次都不同,就像使用应用程序一样
在这里插入图片描述

Caching

› Copies of frequently used web pages stored on client, local proxy host or ISP proxy host. Caching improves performance but content could be old (big issue with dynamic pages)
› How to determine if a local copy can be re-used or not?
• Locally determine copy is still valid (e.g. “expires” header)
• Revalidate copy with remote server (e.g. “last-modified” header)
›存储在客户端、本地代理主机或ISP代理主机上的常用网页副本。缓存提高了性能,但内容可能是旧的(动态页面的大问题)
›如何确定本地副本是否可以重复使用?
·本地确定副本仍然有效(例如,“expires”报头)
·使用远程服务器重新验证副本(例如,“last-modified”报头)
在这里插入图片描述

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

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

相关文章

python 字符串的详细处理方法

当前版本: Python 3.8.4 简介 字符串是由字符组成的序列,可以用单引号、双引号或三引号(单引号或双引号的连续使用)括起来。一般用来表示和处理文本信息,可以是字母、数字、标点符号以及其他特殊字符,用于…

将PDF发票转换为excel、xml结构化数据的完美解决方案

随着电子发票的普及,越来越多的企业和个人开始使用PDF格式的电子发票。然而,有时我们需要将电子发票转换为XML格式以便于处理和分析。本文将介绍如何将收到的PDF发票下载为excel、xml文件。首先,我们需要明确一点,PDF是一种基于图…

微服务概述之微服务特性

前言 既然系统采用了微服务架构,就需要了解一些微服务的特性,这样在进行微服务开发时,脑海中才会有一些指导方向。微服务具有以下特性。 1. 服务组件化 组件是独立、可替换、可升级的软件的单元。将整体应用拆分成独立的服务组件后&#xff…

【算法分析与设计】和为k的子数组

目录 问题 示例 方案一: 思路: 算法设计 代码实现 运行结果: 方案二(调优) 思路(前缀和) 算法设计 示意图 代码实现 运行结果 问题 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数…

Python提取PDF中部分页面的实战代码

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

【小沐学GIS】基于OpenSceneGraph(OSG)绘制三维数字地球Earth

🍺三维数字地球系列相关文章如下🍺:1【小沐学GIS】基于C绘制三维数字地球Earth(OpenGL、glfw、glut)第一期2【小沐学GIS】基于C绘制三维数字地球Earth(OpenGL、glfw、glut)第二期3【小沐学GIS】…

CSS 一行三列布局,可换行(含grid网格布局、flex弹性布局/inline-block布局 + 伪类选择器)

效果 一、HTML <div class"num-wrap"><div class"num-item" v-for"num in 8" :key"num">{{ num }}</div></div> 二、CSS 1、grid网格布局&#xff08;推荐&#xff09; .num-wrap {// grid网格布局display…

Python轻松实现炫酷的手势检测

大家好&#xff0c;今天分享一个非常有意思且十分简单的python库——mediapipe库。该库集成了大量的深度学习模型&#xff0c;短短几行代码&#xff0c;就可以快速实现一个炫酷的实例&#xff0c;本文就以手势检测为例&#xff0c;展示一下这个强大的开源库。 mediapipe由Goog…

书生·浦语大模型实战营作业(四)

基础作业&#xff1a; 构建数据集&#xff0c;使用 XTuner 微调 InternLM-Chat-7B 模型, 让模型学习到它是你的智能小助手&#xff0c;效果如下图所示&#xff0c;本作业训练出来的模型的输出需要将不要葱姜蒜大佬替换成自己名字或昵称&#xff01; 数据集 回答结果 进阶作…

抽象类--java学习笔记

什麽是抽象类&#xff1f; 在java中有一个关键字叫&#xff1a;abstract&#xff0c;它就是抽象的意思&#xff0c;可以用它修饰类、成员方法abstract修饰类&#xff0c;这个类就是抽象类&#xff1b;修饰方法&#xff0c;这个方法就是抽象方法 认识抽象类 抽象类的注意事项…

2024.1.15每日一题

LeetCode 82.删除排序链表中的重复元素 II 82. 删除排序链表中的重复元素 II - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 示例…

Mac M1 Parallels CentOS7.9 Rancher + K8S + Gitlab + Jenkins +Harbor CICD

一、资源清单 机器名称IP地址角色k8srancher高可用部署: https://blog.csdn.net/qq_41594280/article/details/135312148rancher10.211.55.200管理K8S集群k8svip10.211.55.199K8S VIPmaster0110.211.55.201K8S集群主节点master0210.211.55.202K8S集群主节点master0310.211.55.…

AC修炼计划(AtCoder Beginner Contest 335)E-F

传送门&#xff1a; AtCoder Beginner Contest 335 (Sponsored by Mynavi) - AtCoder A&#xff0c;B&#xff0c;C&#xff0c;D还算比较基础&#xff0c;没有什么思路&#xff0c;纯暴力就可以过。 这里来总结一下E和F E - Non-Decreasing Colorful Path 最开始以为是树形…

JVM:从零到入门

JVM&#xff0c;就是Java虚拟机。 JVM是一个巨大的话题&#xff0c;我们本文主要简单介绍一些围绕JVM相关的基础知识。 目录 JVM内存区域划分 本地方法栈 虚拟机栈 堆 程序计数器 方法区/ 元数据区 类加载 1.加载 2.验证 3.准备 4.解析 5.初始化 双亲委派模型 …

任务7:安装MySQL数据库

任务描述 知识点&#xff1a; MySQL数据库安装与使用 重 点&#xff1a; 基于CentOS系统&#xff0c;安装MySQL数据库 内 容&#xff1a; 安装MySQL数据库修改root用户密码 任务指导 MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c…

gcd得最大公约数,辗转相除法理解

欧几里得算法_百度百科 (baidu.com) —————— 百度百科证法一的一些便于理解的细节&#xff1a; 我们求 a 和 b 的最大公约数。 &#xff08;如果a是b的倍数&#xff0c;那么b就是最大公约数。&#xff09; a>b&#xff0c;a可以表示为 a kb r 设d为a和b的最大公约…

一二三应用开发平台文件处理设计与实现系列之5——MinIO技术预研

背景 上篇介绍了文件读写框架设计与实现&#xff0c;同时顺便说明了本地磁盘存储模式的实现模式。 今天来说下基于文件读写框架&#xff0c;如何集成对象存储组件minio&#xff0c;集成之前&#xff0c;需要对minio进行必要的了解&#xff0c;本篇是minio的技术预研。 minio简…

pip查看某个包存在的历史版本

简介&#xff1a;当我们想查看某个包有哪些可安装版本&#xff0c;但是又不想去官网查询&#xff0c;如何用pip命令查询出全部历史版本&#xff1f; 历史版本&#xff1a; Python&#xff1a;pip升级超时解决方案 Python&#xff1a;指定的Python版本pip Python&#xff1a…

把模板作为元函数参数传递。

C模板元编程是一种典型的函数式编程&#xff0c;函数在整个编程体系中处于核心的地位。 这里的函数与一般C程序中定义的函数有所区别&#xff0c;其更接近数学意义上的函 数——是无副作用的映射或变换&#xff1a;在输入相同的前提下&#xff0c;多次调用同一个函数&…

mac vscode latex实用

网上有教程怎么在vscode里安装macTex以及插件&#xff0c;然后就可以在latex里写代码了&#xff0c;这里需要修改的是对应的json文件&#xff0c;输入command P,可以看到最近打开的json设置文件&#xff0c;结果如下 然后设置这个json文件&#xff0c;我的json文件设置如下 …