详解TCP/IP应用层协议

TCP/IP的四层结构分别为应用层,传输层,网络层,数据链路层。

应用层的功能是什么?

应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的。这个单层执行 TCP/IP 模型的会话层、表示层和应用层的所有操作。如果用户想与各种网络系统进行通信,该层结合了与各种应用程序接口的功能,如数据编码、数据转换和规定。

应用层包含的协议以及各个协议的作用:

1.超文本传输协议 (HTTP)

通常,该协议是万维网 (WWW) 的基础。它用于在不同系统上交换超文本。它是一种请求-响应协议。

客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。http是无状态无连接的。

http协议格式:

请求模式:

1)首行:方法(GET/POST/HEAD/PUT/DELETE/...)+URL+版本号(HTTP1.1为多数场景下)

2) Content-Length 表示body部分的长度(字节)

    Content-Type 表示body部分的数据格式

  •     协议头header:请求的属性,每一行都是一个键值对,键和值之间用": "来分割,每组属性之间用 分隔
  •     User-Agent:表示操作系统和浏览器的型号
  •    host 表示客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
  •    Referer表示当前页面是从哪个页面跳转过来的
  •    Cookie:用于在客户端存储少量信息. 通常用于实现会话(session)的功能,浏览器存储数据的一种方式(客户端的概念) ,这里面包含身份标识session id内容都是由对应的程序员决定     的,Session是服务器进行描述用户身份信息的方式(服务端的概念)
  •    location:搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;

        空行:表示header结束的标记

3)body正文:即协议正文,数据种类非常多样了,也可能body为空(GET请求一般为空,POST请求一般有数据)空行后面的内容都是body,body允许为空字符串,如果body存在,则在Header中会有一个

响应模式:

 

1)首行+状态码(标识这次请求是否失败,以及原因)+状态码描述信息

2)协议头header,每一行是一个冒号分隔的键值对,请求的属性,每组属性之间用 分隔,遇到空行表示Header结束

3)body:空行后面的内容都是body,body允许为空字符串,如果body存在,则在header中会有一个Content-Length属性会标识Body的长度;

如果服务器返回了一个html页面那么html页面中的内容就是在body中

2.文件传输协议 (FTP)

它用于在两个主机之间共享或传输文件。运行 FTP 应用程序的主机充当 FTP 服务器,而另一台主机充当 FTP 客户端。

请求文件共享的客户端主机需要来自服务器的身份验证才能访问数据。

一旦服务器授权了这个文件,它就可以从服务器访问任何类型的文件,发送或接收文件。

3.简单邮件传输协议 (SMTP)

SMTP 用于发送电子邮件。我们使用 SMTP 来配置发送电子邮件的主机。

4.域名服务器 (DNS)

任何网络中的每个主机设备都有一个唯一的逻辑地址,称为 IP 地址。

IP地址是一组数字,很难记忆。当我们在浏览器上输入任何网址时,例如Google.com我们正在请求具有 IP 地址的主机。

但是,没有必要将我们请求的网页的 IP 地址记忆为 DNS,它将名称映射到每个逻辑 IP 地址并存储它。

因此,当我们浏览任何网页时,它会将 DNS 查询发送到其 DNS 服务器以将 IP 地址与名称映射。获得地址后,将使用 IP 地址构建 HTTP 会话。

5.动态主机配置协议 (DHCP)

任何网络中的主机都需要一个 IP 地址才能与网络中的其他设备进行通信。它通过手动配置或使用动态主机配置协议 (DHCP) 获取此地址。

当我们使用 DHCP 时,主机会自动分配一个 IP 地址。

例如,考虑一个拥有 50,000 个主机设备的网络。然后手动为每台主机分配 IP 地址很困难,也很费时间。因此,我们使用 DHCP 协议为连接的主机设备分配 IP 地址和其他信息,例如子网掩码 IP 或网关 IP。

你可能感兴趣的:(tcp/ip,网络,服务器)