首页 > 其他分享 >网络协议七层模型

网络协议七层模型

时间:2022-12-15 13:44:28浏览次数:61  
标签:浏览器 请求 七层 模型 网络协议 TCP Cookie 服务器 客户端

1、OSI七层模型&TCP/IP四层模型

OSI七层模型 TCP/IP四层模型 对应网络协议 说明
应用层 应用层 HTTP、TFTP、FTP、NFS、WAIS、SMTP 主要是终端应用,比如说是FTP,web浏览器,QQ
表示层 应用层 Telnet, Rlogin,SNMP, Gopher 主要是对接收的数据进行解密、解压缩等(也就是把计算机能够识别的东西转换成人能识别的东西,图片声音等)
会话层 应用层 SMTP, DNS 通过传输层建立数据传送的通路。主要在你的系统之间发起会话或者接收会话请求(设备之间需要互相认识可以是IP也可以是MAC地址或者主机名)
传输层 传输层 TCP, UDP 定义了一些传输数据的协议和端口号,端口号与网关地址绑定,可以准确的定位到具体的程序,传输协议:TCP,UDP
网络层 传输层 IP, ICMP, ARP,RARP, AKP, UUCP 引入了IP协议,标识用户,进行互联网之间的电信号通信
数据链层 数据链层 FDDI, Ethernet,Arpanet, PDN, SLIP, PPP 定义了电信号的分组方式,也就是以太网协议,一个电信号构成一个数据包,包含head和data,这一层通过mac地址(arp协议获取)标识用户,在局域网完成广播通信
物理层 数据链层 IEEE 802.1A, IEEE 802.2到IEEE 802.11 网线、连接wifi、光缆等,主要功能是基于电器特性发送高低电压(电信号)

2、TCP和UDP

传输层协议 定义以及特点 应用场景
TCP 面向连接,可靠传输,面向字节流,对系统资源要求较多 文件传输,电子邮件
UDP 无连接,面向报文,不可靠传说,对系统资源要求较小 IP电话,视频会议,直播

3、http和https

超文本传输协议 定义以及特点
http 传输的是无状态的,信息是明文传输,默认端口80
https 传输有进行加密和身份认证,默认端口443,需要到ca申请证书

4、Cookie和Session----记录客户状态的机制,解决http协议的无状态性

不同的地方 Cookie Session
存储位置不同 将用户数据通过加密的方式保存在客户端,大多数情况Cookie存储在浏览器 用于控制客户端和服务端的连接,Session存储在服务器,每个用户产生一个Session,当访问增多,会比较占用服务器的性能
存储容量不同 单个Cookie保存的数据不得超过4kb,一个站点最多20个Cookie Session一般情况下没有上限,不过建议不要存放太多东西,否则影响性能
隐私策略/安全性不同 Cookie放在客户端,可以进行Cookie欺骗,所以不安全 Session放在服务端,更加安全
有效期不同 Cookie可以设置属性达到长期有效 只需要关闭窗口Session就会失效,如果Session超时时间过长,容易导致内存溢出
应用的场景 cookie:用户的登录状态,记录用户的习惯,如购物车; session:登录验证

5、Get和POST

不同点 GET POST
功能 从服务器上获取数据 向服务器传送数据
参数 把参数包含在URL中 通过request body传递参数,将请求信息放置在报文体中
数据大小 不大于2kb 数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
TCP 一个TCP数据包(header/data一起) 两个TCP数据包(先header,再data)
缓存 可以被浏览器缓存或者加为书签 不支持
安全性 低(参数在url可见)
编码类型 url编码 支持多种

6、HTTP协议

  1. 一种用于客户端和服务器之间传输文字、图片、音频、视频等超文本数据的约定和规范
  • 优点
    • 灵活性高,可扩展性强,从http1.0到http1.1再到http2.x,http协议一直在扩展新的属性。
    • http是可靠的数据传输协议(底层的TCP协议会确保传输内容顺序的正确性以及确保不会在传输过程中丢包)
    • 请求应答有来有回
    • 无状态的每一个请求都是相互独立的,默认不需要保存上下文的信息。
  • 缺点
    • 通信使用明文(不加密),内容可能会被窃听
    • 不验证通信方的身份,因此可能会遭遇伪装
    • 无法证明报文的完整性,所以有可能已遭篡改
  1. 请求报文(request message)---请求行+请求头部+请求数据
  2. 常用的请求首部:
  • Accept

    • Accept: text/html  浏览器可以接受服务器回发的类型为 text/html。
    • Accept: /   代表浏览器可以处理所有类型
    • Accept-Encoding: gzip, deflate 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate)
    • Accept-Language: zh-CN,zh;q=0.9  浏览器申明自己接收的语言。
  • Connection

    • Connection: keep-alive  当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连
    • Connection: close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request,需要重新建立TCP连接。
  • Host: www.baidu.com 请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的。

  • Referer: https://www.baidu.com/?tn=62095104_8_oem_dg 当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。

  • User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36 告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本。

  • Cache-Control

    • Cache-Control: private 默认为private  响应只能够作为私有的缓存,不能在用户间共享
    • Cache-Control: public 响应会被缓存,并且在多用户间共享。正常情况, 如果要求HTTP认证,响应会自动设置为 private.
    • Cache-Control: must-revalidate  响应在特定条件下会被重用,以满足接下来的请求,但是它必须到服务器端去验证它是不是仍然是最新的。
    • Cache-Control: no-cache  响应不会被缓存,而是实时向服务器端请求资源。
    • Cache-Control: max-age=10 设置缓存最大的有效时间,但是这个参数定义的是时间大小(比如:60)而不是确定的时间点。单位是[秒 seconds]。
    • Cache-Control: no-store 在任何条件下,响应都不会被缓存,并且不会被写入到客户端的磁盘里,这也是基于安全考虑的某些敏感的响应才会使用这个。
  • Cookie:是用来存储一些用户信息以便让服务器辨别用户身份的(大多数需要登录的网站上面会比较常见)

  • Range(用于断点续传): bytes=0-5 指定第一个字节的位置和最后一个字节的位置。用于告诉服务器自己想取对象的哪部分。

标签:浏览器,请求,七层,模型,网络协议,TCP,Cookie,服务器,客户端
From: https://www.cnblogs.com/llmcf/p/16984814.html

相关文章

  • 语言模型(马尔可夫模型,n元语法)
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • JVM的内存区域划分(面试问题:你了解java内存模型么)
    学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?......
  • java内存模型
    一.内存模型的相关概念。大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在......
  • tensorflow 模型保存格式
    tensorflow模型保存格式https://www.cnblogs.com/wioponsen/p/13524037.htmlhttps://blog.csdn.net/qq_42738654/article/details/121096614https://www.zdaiot.com/ML......
  • django模型层详解
    django模型层详解自带的sqlate3数据库对时间字段不敏感有时候会展示错乱所以我们习惯切换成常见的数据库比如MYSQLdjangoorm并不会帮我们创建数据库所以需要我们自己......
  • Django框架:6、模型层之ORM查询关键字、SQL语句转换
    Django框架之模型层一、模型层前期准备介绍​ 在django框架中,模型层是直接和数据库进行操作的,所有数据的增删改查都由模型层来完成​ django框架自带的sqlite3数据库......
  • Django之模型层
    模型层之前期准备自带的sqlite3数据库对时间字段不敏感,有时候会展示错乱,所以我们习惯切换成常见的数据库比如MySQL,djangoorm并不会自动帮你创建库,所以需要提前准备好。D......
  • django之模型层
    目录模型层模型层前期准备模型层之ORM常见关键字模型层模型层前期准备使用djangoORM要注意​ 1、django自带的sqlite3数据可对时间字段不敏感,有时候会展示错乱,所以我......
  • django 5 模板层补充与模型层基础
    今日内容详细目录今日内容详细模板层之标签自定义过滤器、标签及inclusion_tag(了解)模板的继承与导入模型层模型层之前期准备ORM常用关键字模板层之标签{%if条件1(可......
  • python之路49 模板层标签 自定义过滤器 模板继承、模型层准备、ORM部分操作
    模板层之标签{%if条件1(可以自己写也可以是用传递过来的数据)%}<p>周三了周三了</p>{%elif条件2(可以自己写也可以用传递过来的数据)%}<p>百日......