Web应用与应用层协议
Web应用与应用层协议
本篇博文中的主要参考文献是《计算机网络高级教程》,分别是吴功宜老先生和吴英教授合著。这部教程是我研究生老师所推荐的网络必读科目,由于该教程讲解的基础知识详细,但内容颇多,达700多页。特将各章节主要内容总结,后续各章节将逐步更新,由于本人学识有限,仅总结的是作者自己认为重要的内容。
文章中的Why表示产生的背景,也就是说为什么会产生该技术,What表示该技术是什么,How表示该技术是如何使用的。以下将用字母表示各问题。
应用层协议分为3种基本类型:基础设施类、网络应用类、网络管理类。
基础设施类包括:
支持Internet运行的全局基础设施类应用层协议——DNS(域名服务协议);支持各个网络系统运行的局部基础设施类应用层协议 ——DHCP(动态主机配置协议)。
网络应用类包括:基于C/S工作模式与基于P2P工作模式的应用层协议。
基于C/S工作模式的应用层协议包括:Telent(网络终端协议)、SMTP(电子邮件服务协议)、FTP(文件传输协 议)、HTTP(WEB服务协议)。
基于P2P工作模式的应用层协议包括:文件共享协议、即时通信协议、流媒体协议、共享存储协议、协同工作协议。
网络管理类:主要是SNMP(简单网络管理协议)。
下面我们来看基础设施类中的Telent(网络终端协议):
Why:不同型号计算机之间的差异性,就是异构计算机系统之间的互联问题。
What:Telent引入NVT(网络虚拟终端)的概念,提供一种专门的键盘定义,用来屏蔽不同计算机系统对键盘输入的差异性。
How:用户的实终端采用用户终端的格式和本体Telnet客户通信;远程计算机采用主机系统格式与Telent服务器通信。在Telent客 户进程与Telent服务器进程之间,通过NVT(网络虚拟终端)标准来进行通信。如下图所示:
SMTP(简单邮件传输协议):
电子邮件系统分为邮件服务器端和邮件客户端。
邮件服务器端包括用来发邮件的SMTP服务器、用来接收邮件的POP3(邮局协议)、或IMAP(交互式邮件存取协议)服务器以及用来存储电子邮件的电子邮箱。
邮件客户端包括用户发送邮件的SMTP代理、用来接收邮件的POP3代理以及为用户提供管理界面的用户接口程序。
FTP(文件传输协议):
What:文件传输服务是由FTP应用程序提供,而FTP应用程序遵循的是TCP/IP中的FTP协议。它运行用户将文件从一台计算机传输到另 一 台计算机,并能保证传输的可靠性。
How:首先建立控制连接,FTP控制连接的端口号为21;再建立数据连接,FTP数据连接的端口号是20。其次在FTP数据传输建立之 后, FTP客户就可以从FTP服务器下载或上传文件。
最后结束数据传输时,首先释放FTP数据连接,然后再释放FTP控制连接。如下图所示:
匿名FTP服务:
What:提供服务的人或机构在其FTP服务器的账户上建立了一个公开账户,并赋予该账户访问公共目录的权限,以提供免费的服务。
How:用户访问匿名服务的FTP服务器,不需要输入用户名和密码。如果输入的话,可用anonymous作为用户名,guest作密码。
Web应用:
支持Web服务的三个关键技术:
HTTP(超文本传输协议):它是在Web浏览器和Web服务器之间的传输协议。
URL(统一资源定位符):用来标识Web中的资源,便于用户查找。
HTML(超文本标注语言)
URL(统一资源定位符):
Why:在Internet中,必须要制定一种方法来标记可以提供给用户共享的每一个文件或对象。
What:由三部分组成:协议类型、主机名、路径及文件名。
例如:HTTP://www.nanki.edu.cn/index.html
http:指出要使用的协议类型,www.nanki.edu.cn指出要访问的服务器的主机名,index.html指出要访问的主页的路径与文件名。
HTTP协议:
下面我们来了解一下该协议的特性。
1) 无状态协议
Why:为了提高Web服务器的并发处理能力
What:服务器再接收到HTTP请求报文后,返回应答报文之后不保存有关Web浏览器的任何信息。即使是同一个Web浏览器在几秒钟之内两次访问同一个Web服务器,它也必须分别建立两次连接。
2) 非持续连接
What:如果客户需要向服务器发出多个服务请求报文,而服务器需要对每一个请求报文进行应答,那么就需要为每一个客户与服务 器的请求报文与应答报文建立一个TCP连接。
3) 持续连接
What:所有客户与服务器的请求报文与应答报文都可以通过一个TCP连接来完成
持续连接有两种工作方式:非流水线与流水线
非流水线方式的特点是:客户端只有在接收到前一个响应时才能发出新的请求,这时服务器每发送一个对象之后,要等待下一个请求的到来,连接处于空闲状态,浪费服务器的资源。
流水线方式:客户端在没有收到前一个响应时就能够发出新的请求,客户端请求像流水线作业般,连续地发送到服务器端,服务器可以连续地发送应答报文。
(CDN)内容分发网技术研究
Why:为了缓解Internet用户增加与网络服务等待时间增长的矛盾。
What:如果某个内容被很多用户关注,那就将它缓存在离用户最近的结点上;选择合适的缓存节点为用户提供服务。
(DNS)域名系统
Why:早期主机名到地址的映射是放到主机文件(hosts.txt)中,主机名到IP地址的解析需要将hosts.txt文件传送到各个主机来实现,这使得网络信息中心主机负载过重。
What:其是Internet中的主机按照一定的规则,用自然语言表示的名字,它与确定的IP地址相对应。
1) 域名空间:定义一个包括所有可能出现的主机名字的域名空间。
2) 域名注册:保证每台主机域名的唯一性。
3) 域名解析:提供一种有效的域名与IP地址转换机制。
How:将主机名转换成IP地址,使得用户方便的访问各种Internet资源与服务。
区、域与域名服务器:
Why:例如设置管理nanki.edu.cn域的域名服务器最简单的方法是设置一个域名服务器,管理所有南开大学内部的域名。但这种集中管理的方法带来的是域名系统运行效率低下,不能满足服务质量的要求。
How:
1) 根据需要将一个域划分成不重叠的多个区。
2) 每个区设置相应的权限域名服务器,用来保存该区内所以主机的域名与IP地址映射关系数据。区是域名服务器管辖的范围。
3) 区和区的域名服务器相互连接,构成支持整个域的域名服务器体系。
域名解析算法:
递归解析
What:在递归解析过程中,如果本地域名服务器没有要解析的域名信息,那么本地服务器将接管向其他域名服务器请求解析的责任,再将最终结果返回给客户。
反复解析
What:本地域名服务器如果不能返回最终的解析结果,那么它只能返回它认为可以解析的域名服务器的IP地址。客户端解析程序就向下一个域名服务器发出解析请求,直至最终获得需要的解析结果。
Web应用与应用层协议的更多相关文章
- 第五章Web应用与应用层协议
Web应用与应用层协议 本篇博文中的主要参考文献是<计算机网络高级教程>,分别是吴功宜老先生和吴英教授合著.这部教程是我研究生老师所推荐的网络必读科目,由于该教程讲解的基础知识详细,但内容 ...
- Web应用层协议---HTTP
处于协议栈顶层的应用层协议定义了运行在不同端系统的应用程序进程如何相互传递报文.定义内容如下: 1.交换的报文类型.请求报文和响应报文. 2.各种报文类型的语法,如报文中的各个字段及这这些字段是如何描 ...
- UNIX/Linux网络编程基础:应用层协议简介
目录 1.HTTP协议 2.FTP协议 3.TELNET协议 4.NFS协议 1.HTTP协议 应用层协议HTTP协议是Web的核心.HTTP协议在Web的客户程序和服务器程序中得以实现,运行在不同系 ...
- web应用、HTTP协议及web框架简介
1. web应用 1.1 web应用程序 Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件 B/S模式(浏览器/服 ...
- Django系列之web应用与http协议
第一节:最简单的web应用程序 web应用程序指供浏览器访问的程序,通常也简称为web应用.应用程序有两种模式C/S,B/S.C/S是客户端/服务器程序.也就是说这类程序一般独立运行.而B/S就是浏览 ...
- web应用程序+HTTP协议
标签(空格分隔): Django web应用程序案例: 如果我们想通过自己电脑访问京东,就是一个网络编程(因为京东的服务部署在京东,通过自己的电脑浏览器传输到京东服务就是网络编程):只要涉及到网络编程 ...
- 1、Django系列之web应用与http协议
第1节:最简单的web应用程序 Web应用程序指供浏览器访问的程序,通常也简称为Web应用.应用程序有两种模式C/S.B/S.C/S是客户端/服务器端程序,也就是说这类程序一般独立运行.而B/S就是浏 ...
- web应用与http协议
web应用 Web应用程序是一种可以通过web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件. 应用程序有两种模式C/S.B/S.C/S是客户端/ ...
- web应用 与 http协议
一.web 应用 Web应用程序是一种可以通过Web访问的应用程序,用户只需要有浏览器即可访问应用程序,不需要再安装其他软件. 应用程序有两种模式C/S.B/S.C/S即客户端—服务端程序这类程序一般 ...
随机推荐
- python + selenium 自动化测试框架
分享一个网站自动化测试框架 结构如下: test_project|--logs|---pages |---register_page.py| |---base_page.py|---test ...
- PHP简洁之道
前言 前几天在GitHub看到一篇写PHP简洁之道的译文,觉得还不错,所以转在了自己的博客中,只不过有一些地方好像没有翻译,再加上排版上的一些小问题,所以决定自己翻译一遍. 原文地址:https:// ...
- LeetCode 674. Longest Continuous Increasing Subsequence (最长连续递增序列)
Given an unsorted array of integers, find the length of longest continuous increasing subsequence. E ...
- LeetCode 152. Maximum Product Subarray (最大乘积子数组)
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- c语言15行实现简易cat命令
刚刚和舍友打赌.舍友说PY20行能做xlsx文件分析整理,C20行屁都干不了.我说简单的cat还是能做的嘛.他说不信.我说不处理非文件的参数的话10行能做啊. 下面直接贴代码吧: #include & ...
- hadoop命令
1.查看指定目录下内容 Hadoop dfs –ls [文件目录] eg: hadoop dfs –ls /user/wangkai.pt 2.打开某个已存在文件 hadoop dfs –cat [f ...
- AngularJS学习篇(十七)
AngularJS 输入验证 <!DOCTYPE html> <html> <script src="http://apps.bdimg.com/libs/an ...
- AngularJS学习篇(三)
创建自定义的指令 除了 AngularJS 内置的指令外,我们还可以创建自定义指令. 你可以使用 .directive 函数来添加自定义的指令. 要调用自定义指令,HTML 元素上需要添加自定义指令名 ...
- URLs对象 blob URL
把指向数据的URL保存到file或者blob对象里,好处就是不需要先文件读取内容然后才能用. function createObjectURL(blob){if (window.URL){retu ...
- display:none,float小秘密
一个元素不管是块元素还是行内元素 在添加了 display:none 之后,就变成了不可见的块元素,可以给他添加长度和高度 在float之后内联元素也会隐性成为 inline-block ...