概述
应用层直接为用户的应用进程提供服务,这里的进程指正在运行的进程
域名系统
DNS 是一个分布式数据库,提供主机名和 IP 地址的转换。
域名具有层次结构,从上至下分别为:根域名、顶级域名、次级域名
大多数情况下,DNS 请求报文以 UDP 用户数据报的方式进行传输。为了减小开销
解析过程:
一、主机向本地域名服务器查询一般用「递归查询」,即如果本地域名服务器不知道,那么本地域名服务器就以 DNS 客户身份向其它根域名服务器发出查询请求报文,亦「替该主机继续查询」
二、本地域名服务器向根域名服务器查询一般采用「迭代查询」,即根域名服务器要么给出 IP 地址,要么告诉本地域名服务器你下一步应向哪一个域名服务器进行查询,亦「而不是替本地域名服务器进行查询」
文件传输协议 FTP
FTP 使用 TCP 进行连接,使用两个连接来传输文件:
- 控制连接:服务器打开端口号 21 等待客户连接,当连接建立后,使用这个连接将控制命令发给服务器,同时传回服务器的应答
- 数据连接:用来传送一个文件数据
万维网
万维网是一个大规模的联机式的信息存储场所,是一个分布式的超媒体系统,即超文本系统的扩充,超文本指含指向其它文档的文本链接,而超媒体系统还包含其它表示方式的信息,如图形、图像、声音、视频等
工作流程:客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档
这就需要解决以下几个问题:
- 怎样标志分布在整个互联网上的万维网文档?
- 用什么样的协议来实现万维网上的各种链接?
- 怎样使得不同的作者创作的不同风格的万维网文档在互联网各个主机上显示?
统一资源界定符 URL
URL 表在互联网上资源的地址
组成:<协议>://<主机>:<端口>/<路径>
这里的主机指域名( IP 地址)
超文本传送协议 HTTP
定义了浏览器应该怎样向万维网服务器请求万维网文档,而服务器又应该怎样把文档传送给浏览器
报文结构:
请求行 CRLF ——1. 方法/URL/版本——2. 版本/状态码/短语
首部行 CRLF
CRLF
实体主体
状态码:
1xx 表示通知消息
2xx 表示成功
3xx 表示重定向
4xx 表示客户差错
5xx 表示服务器差错
HTTP/1.0 的主要缺点就是每请求一个文档就要有两倍 RTT 的开销。
HTTP/1.1 使用持续连接,就是万维网服务器在发送响应后的一段时间仍然保持这条连接
万维网文档
超文本标记语言 HTML
制作万维网页面的标准语言
动态万维网
指文档的内容当浏览器访问服务器时才由应用程序动态的创建
为实现动态万维网文档,应:
- 增加另一个应用程序,用来处理浏览器发来的数据,并创建动态文档
- 增加一个机制,用来服务器将浏览器发来的数据传送给这个程序
通用网关接口 CGI 是一种标准,定义了动态文档应该如何创建,输入数据应该如何提供给应用程序,以及输出结果应该如何使用
CGI 程序正式名称 CGI脚本,「脚本」指一个程序,它被另一个程序而不是计算机处理器来接释或执行
活动万维网文档
提供屏幕连续更新技术,把所有的工作转交给浏览器端,每当浏览器请求一个活动文档,服务器就返回一段活动文档程序副本,使该程序在浏览器端运行
Java就是用来干这个的