网络基础 TCP/IP五层模型之应用层与HTTP协议

TCP/IP五层模型

TCP/IP是一组协议的代名词,它包括了许多协议,组成了TCP/IP协议簇。

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫他的下一层所提供的网络来完成自己的需求。

  • 应用层:负责应用程序之间的数据沟通;
  • 传输层:负责端与端之间的数据沟通;
  • 网络层:负责地址管理与路由选择;
  • 链路层:负责相邻设备之间的数据传输;
  • 物理层:负责光电信号的传输;

物理层考虑的比较少,因此很多时候也可以称为TCP/IP四层模型;

一般来说:

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容;

  • 对于一台路由器,它实现了从网络层到物理层;

  • 对于一台交换机,它实现了从数据链路层到物理层;

  • 对于集线器,只实现在物理层;

应用层

简单理解,应用层就是负责应用程序之间数据沟通,比如:简单的电子邮件传输(SMTP),文件传输(FTP),网络远程访问协议(Telnet)等。

协议?
协议就可以理解为一种“约定”。

在应用层已经有了特别成熟好用的协议——HTTP协议。

HTTP协议

HTTP协议格式

HTTP请求:
在这里插入图片描述

由上图可以看出,HTTP请求的组成有:

  • 首行:方法 + url + 版本
    上图为post方法 + 访问的网址 + 版本号
    常见版本号有:HTTP/1.1 、 HTTP/2.2 、HTTP/3.0
  • 协议头(Header):从第二行开始,表示请求的属性:
    若干用冒号分割的键值对,每组键值对占一行;
  • 空行:表示Header到此处结束
  • 协议正文(Body):空行之后的内容都是Body,Body允许为空字符串。
    如果Body存在,则Header中会有一个Content-Length属性来表示Body的长度。

一般情况下,GET请求没有body,POST请求才有Body,GTE更偏向于获取数据

HTTP响应:
在这里插入图片描述

HTTP响应的组成:

  • 首行:版本号 + 状态码 + 状态码描述信息
  • 协议头(Header): 用冒号分隔的键值对,没对占一行
  • 空行:header部分的结束标记
  • 协议正文(Body):可以是html,CSS,JavaScript,图片,json数据…

HTTP的状态码:

  • 1XX:信息性状态码:接受的请求这个字处理
  • 2XX:成功状态码:请求正常处理完毕
  • 3XX:重定向状态码:需要进行附加操作以完成请求
  • 4XX:客户端错误状态码:服务器无法处理请求
  • 5XX:服务器错误状态码:服务器处理请求出错

常见状态码:
200(访问成功),301(永久重定向),302(暂时重定向),403(没有权限),404(未找到指定资源),502(服务器错误),504(服务器响应超时)

HTTP常见的方法:

  • GET:获取资源
  • POST:传输实体主体
  • PUT:传输文件
  • DELETE:删除文件
  • OPTIONS:询问支持的方法

GET 和POST的区别?
GET更偏向于获取数据,没有正文(Body),GET请求往往会把自定制数据放在query-string中;POST请求往往会把自定制数据放在body中。

HTTP常见的Header:

  • Content-Type:数据类型(text/html)
  • Content-Length:正文的长度
  • Host:客户端告知服务器,所请求的资源在哪个主机的哪个端口上
  • User-Agent:声明用户的操作系统和浏览器版本
  • reference:当前页面是从哪个页面跳转过来的
  • location:搭配3XX状态码使用,告诉客户端接下来要去哪里访问
  • Cookie:用于在客户端存储少量信息,通常用于实现会话(session)功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值