计网之应用层

news/2024/5/18 15:29:38 标签: 网络, tcp/ip, udp

因特网协议概述

在这里插入图片描述

常用协议
应用层HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)、DHCP(动态主机配置协议)、SNMP(简单网络管理协议)
运输层TCP(传输控制协议)、UDP(用户数据报协议)、SCTP(流控制传输协议)、DCCP(数据报式传输协议)
网络IP(Internet Protocol) 、ICMP(Internet Control Message Protocol)、ARP(地址解析协议)、RAR(逆地址解析协议)、OSPF(开放最短路径优先)、BGP(边界网关协议)
链路层PPP(点对点协议)、HDLC(高级数据链路控制)、Ethernet(以太网)、Wi-Fi(无线局域网)、ATM(异步传输模式)、FDDI(光纤分布式数据接口)
物理层IEEE 802.3(以太网)、IEEE 802.11(Wi-Fi)、SONET(同步光纤网络)、DSL(数字用户线路)、USB(通用串行总线)、HDMI(高清晰度多媒体接口)

应用层协议原理

进程通信

客户发起通信、服务器等待联系

套接字

  • 进程通过套接字这个软件接口,向网络发送和接收报文
  • 应用层与运输层的接口
  • 应用程序与网络的应用程序编程接口(API)
  • 提供了一种抽象层,隐藏了底层网络协议的细节

进程寻址

主机地址:IP地址
目的主机中指定接收进程的标识符:端口号

应用服务要求

  • 可靠数据传输
  • 吞吐量
  • 定时(时延限制)
  • 安全性

Web和HTTP

  • (Hypertext Transfer Protocol)
  • TCP为HTTP提供可靠数据传输服务

HTTP是无状态协议

  • 当客户端发送HTTP请求时,它必须提供所有必要的信息(如请求方法、URL、头部字段等),服务器根据这些信息来处理请求并发送相应的HTTP响应。
  • 每个HTTP请求都是独立的,服务器在发送响应后,不会保留客户端的任何状态信息,也不会记录客户端的上下文。

HTTP报文格式

请求报文

在这里插入图片描述

HTTP请求报文
请求行GET /somedir/page.html HTTP/1.1方法字段、URL字段、HTTP版本字段
首部行Host:www.someschool.edu指明对象所在主机
首部行Connection:close非持续连接
首部行User-agent:Mozilla/5.0指明用户代理,即浏览器类型是Firefox
首部行Accept-language:fr希望得到对象的法语版本

方法字段

  • GET:用于请求获取特定资源,通常用于获取网页、图片、文本等静态内容。该方法是幂等的,即多次执行相同的GET请求应该得到相同的结果。实体体为空
  • POST:用于向服务器提交数据,通常用于提交表单数据、上传文件等操作。POST请求可能会引起服务器状态的变化,不是幂等的。
  • PUT:用于向服务器上传新的资源,或者更新现有资源。PUT请求应该是幂等的,即多次执行相同的PUT请求会得到相同的结果。
  • DELETE:用于请求删除指定的资源。DELETE请求应该是幂等的,即多次执行相同的DELETE请求会得到相同的结果。
  • HEAD:与GET方法类似,但只返回响应头部,不返回实际内容。主要用于获取资源的元数据或检查资源是否存在。
  • OPTIONS:用于获取目标资源支持的通信选项。服务器可以返回允许的方法、支持的头部字段等信息。
  • TRACE:用于追踪请求在传输链路上的处理情况。服务器会将接收到的请求原样返回给客户端,用于测试和诊断。
  • CONNECT:用于建立与目标资源的隧道连接,通常用于代理服务器。

条件GET:解决缓存器的对象副本为旧副本的问题

if-modified-since:Wed,9 Sep 2015 09:23:24

响应报文

在这里插入图片描述

HTTP响应报文
状态行HTTP/1.1 200 OK协议版本、状态码、相应状态信息
首部行Connection:close非持续连接
首部行Date:Tue,18,Aug,2015 15:44:04 GMT服务器从文件系统中检索到该对象,将其插入响应报文并发送该响应报文的时间
首部行Server:Apache/2.2.3(CentOS)报文由Apache Web服务器产生
首部行Last-Modified:Tue,18,Aug 2015 15:11:03 GMT对象创建/最后修改的时间
首部行Content-Length:6821被发送对象的字节数
首部行Content-Type:text/html实体体的对象是HTML文本
实体体(data data data data data …)所请求的对象本身

状态码

1xx(Informational):表示请求已经被接收,继续处理中。

2xx(Success):表示请求已成功处理并得到响应。

  • 200 OK:请求成功,服务器正常返回请求的数据。
  • 201 Created:请求成功,并在服务器上创建了新的资源。
  • 204 No Content:请求成功,但响应不包含任何实体内容。

3xx(Redirection):表示需要进行进一步的操作,以完成请求。

  • 301 Moved Permanently:请求的资源已永久移动到新的URL。
  • 302 Found:请求的资源暂时移动到新的URL。
  • 304 Not Modified:资源未修改,客户端可以使用缓存的版本。

4xx(Client Error):表示客户端发送的请求有错误。

  • 400 Bad Request:通用差错代码,请求无效,服务器无法理解。
  • 401 Unauthorized:请求需要身份验证。
    -403 Forbidden:服务器拒绝请求访问资源。
  • 404 Not Found:请求的资源不存在。

5xx(Server Error):表示服务器在处理请求时发生错误。

  • 500 Internal Server Error:服务器内部错误。
  • 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效的响应。
  • 503 Service Unavailable:服务器暂时无法处理请求,通常是由于过载或维护。
  • 505 HTTP Version Not Support:服务器不支持请求报文的HTTP协议版本。

cookie

解决HTTP的无状态协议

在这里插入图片描述

Web缓存

Web缓存器,也称为代理服务器
在这里插入图片描述

电子邮件

SMTP

  • (Simple Mail Transfer Protocol)
  • 一般不使用中间邮件服务器
  • HTTP是拉协议,TCP连接由想接收文件的机器发起;SMTP是推协议
    在这里插入图片描述

DNS域名系统

  • 主机名转换为IP地址
  • 4元组:(Name,Value,Type,生存时间TTL)

在这里插入图片描述
根DNS服务器、顶级域服务器(TLD)、权威DNS服务器
DNS缓存


http://www.niftyadmin.cn/n/456244.html

相关文章

20-内存泄漏的几种情况

一、是什么 🥟🥟🥟内存泄漏(Memory leak)是在计算机科学中,由于疏忽或错误造成程序未能释放已经不再使用的内存 并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错…

事务的历史与SSI——PostgreSQL数据库技术峰会成都站分享

前言 PostgreSQL数据库技术峰会成都站 近期(2023年6月17日),由中国开源软件推进联盟PG分会发起的“PostgreSQL数据库技术峰会成都站”圆满举行。我也有幸作为演讲嘉宾参加了此次峰会,收获很多。 (分会回顾和所有pp…

CSDN 每日一练及周赛介绍

CSDN 每日一练及周赛介绍 每日一练每日一练入口 CSDN 周赛CSDN 周赛入口 相关社区每日一练社区入口CSDN 竞赛专区社区入口 每日一练题库每日一练速查每日一练题目题解速查入口 每日一练题解自行接管输入 根据题号进入题目预习提交新题目CSDN 编程比赛出题规范 吐槽 每日一练 C…

记录--前端实现文件预览(pdf、excel、word、图片)

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前端实现文件预览功能 需求:实现一个在线预览pdf、excel、word、图片等文件的功能。 介绍:支持pdf、xlsx、docx、jpg、png、jpeg。 以下使用Vue3代码实现所有功能,建…

大厂必问的Spring面试题

AOP有哪些实现方式? AOP有两种实现方式:静态代理和动态代理。 静态代理 静态代理:代理类在编译阶段生成,在编译阶段将通知织入Java字节码中,也称编译时增强。AspectJ使用的是静态代理。 缺点:代理对象需…

Framework - PMS

二、PMS 手机系统启动,Zygote 启动 SystemServer,SystemServer 启动 AMS、PMS,并注册到 ServiceManager。PMS 扫描 /data/app/ 和 /system/app/ 目录下的所有 apk 文件,获取每个 apk 文件的 AndroidManifest.xml 文件&#xff0c…

翻过那座山——Gitlab流水线任务疑难之编译有子模块的项目指南

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不是…

Debezium系列之:把value中指定字段的值移动或者复制到headers中

Debezium系列之:把value中指定字段的值移动或者复制到headers中 一、需求背景二、创建表和插入数据sql三、核心参数详解三、完整配置四、插入数据,消费topic查看数据样式五、实现从value移动多个字段到headers中六、实现从value中移动多个字段到headers中七、总结和延伸一、需…