如何理解区分HTTP状态码401和403

401 Unauthorized

  • 状态码401标识认证失败,表示请求没有被认证或者认证失败。
  • 通常由web服务器返回,而不是web应用。
  • 场景:token失效、token缺失、token伪造,导致服务端无法识别身份。

403 Forbidden

  • 状态码403表示授权失败,通常表示用户通过了身份验证,但缺少权限对给定的资源进行访问或者操作。
  • 通常由web应用返回。
  • 场景:用户登录成功,但是无权进行读写操作。

总结

401和403的主要区别在于

  • 重点不同:401着重于认证,403着重于授权
  • 返回对象不同:401通常由web服务器返回,403由web应用返回
  • 场景不同:401表示用户未通过身份授权、验证,403表示用户可能通过了身份验证,但缺少指定权限
  • 12
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
三个资料: xml实用大全 无废话xml xml轻松学习手册 XML轻松学习手册: · 第一章:XML快速入门 · 一. 什么是XML? · 二. XML是新概念吗? · 三. 使用XML有什么好处? · 四. XML很难学吗? · 五. XML和HTML的区别 · 六. XML的严格格式 · 七. 关于XML的更多 · 第二章:XML概念 · 一. 扩展性 · 二. 标识 · 三. 语言 · 四. 结构化 · 五. Meta数据 · 六. 显示 · 七. DOM · 第三章:XML的术语 · 导言 · 一.XML文档的有关术语 · 二.DTD的有关术语 · 第四章:XML的语法 · 一.XML语法规则 · 二.元素的语法 · 三.注释的语法 · 四.CDATA的语法 · 五.Namespaces的语法 · 六.entity的语法 · 七.DTD的语法 · 第五章:XML实例解释 · 一.定义新标识 · 二.建立XML文档 · 三.建立相应的HTML文件 · 第六章:XML相关资源 《XML实用大全》 先睹为快 第一部分 XML简介 9 第1章 XML概览 9 1.1 什么是XML 10 1.1.1 XML是元标记语言 10 1.1.2 XML描述的是结构和语义,而不是格式化 10 1.2 为什么开发人员对XML感到激动 13 1.2.1 设计与特定领域有关的标记语言 13 1.2.2 自描述数据 13 1.2.3 应用间交换数据 14 1.2.4 结构化和集成的数据 14 1.3 XML文档的“生命” 15 1.3.1 编辑器 15 1.3.2 语法分析程序和处理程序 15 1.3.3 浏览器和其他工具 15 1.3.4 处理过程总结 15 .4 相关技术 17 1.4.1 超文本标记语言(Hypertext Markup Language) 17 1.4.2 级联样式单(Cascading Style Sheets) 17 1.4.3 可扩展的样式语言(Extensible Style Language) 17 1.4.4 URL和URI 18 1.4.5 XLink和XPointer 18 1.4.6 Unicode字符集 19 1.4.7 如何将这些技术融合在一起 19 1.5 本章小结 20 第2章 XML应用简介 21 2.1 什么是XML应用程序 21 2.1.1 化学标记语言(Chemical Markup Language) 21 2.1.2 数学标记语言(Mathematical Markup Language) 22 2.1.3 频道定义格式 25 2.1.4 经典文学 26 2.2 用于XML的XML 28 2.2.1 XSL 28 2.2.2 XLL 28 2.2.3 DCD 29 2.3 XML的后台应用 30 2.4 本章小结 33 第3章 第一个XML文档 34 3.1 Hello XML 34 3.1.1 创建一个简单的XML文档 34 3.1.2 保存XML文件 35 3.1.3 将XML文件装入Web浏览器 35 .2 考察简单的XML文档 37 3.3 赋于XML标记以意义 39 .4 为XML文档编写样式单 40 .5 将样式单附加到XML文档上 41 3.6 本章小结 43 第4章 数据的结构化 44 4.1 检查数据 44 4.1.1 击球手 44 4.1.2 投球手 46 4.1.3 XML数据的组织 46 4.2 数据的XML化 48 4.2.1 开始编写文档:XML声明和根元素 48 4.2.2 联赛(League)、(分部)Division和(球队)Team数据的XML化 49 4.2.3 球员数据的XML化 52 4.2.4 球员统计数据的XML化 53 4.2.5 将XML组装在一起 56 4.3 XML格式的优点 71 4.4 编制样式单以便显示文档 72 4.4.1 与样式单连接 73 4.4.2 为根元素指定样式规则 74 4.4.3 为标题指定样式规则 75 4.4.4 为球员和统计元素指定样式规则 79 4.4.5 本节小结 80 4.5 本章小结 85 第5章 属性、空标记和XSL 86 5.1 属性 86 5.2 属性与元素的对比 95 5.2.1 结构化的元数据 95 5.2.2 元元数据 99 5.2.3 有关元数据的说明 100 5.2.4 元素更具扩展性 100 5.2.5 使用属性的最佳时机 100 5.3 空标记 102 5.4 XSL 103 5.4.1 XSL样式单模板 103 5.4.2 文档的主体 104 5.4.3 标题 106 5.4.4 联赛、分部和球队 108
计算机和网络安全全文共4页,当前为第1页。计算机和网络安全全文共4页,当前为第1页。计算机和网络安全 计算机和网络安全全文共4页,当前为第1页。 计算机和网络安全全文共4页,当前为第1页。 1计算机网络安全分析 1.1造成威胁 通常情况下,致使网络产生安全问题的重要原因被划分为自然与人为这两大类。前者基本指的是一些自然灾害、计算机设备陈旧、电磁辐射、环境恶劣等所致使。后者主要是指病毒入侵计算机之中、黑客非法攻击、网络存在缺陷、管理出现漏洞等之类所致使。除此,还有来自于TCP/IP协议、网络安全意识匮乏等,也是网络出现安全威胁的原因。 1.2影响因素 影响网络安全性问题的因素包含了网络资源的共享与开放、网络系统设计不完善、人为恶意攻击等。资源共享是为了让网络得以应用,让任意使用者可以经过互联网访问里面的信息资源。所以一般非法入侵之人仅仅只需要通过服务器的请求就可以轻轻松松访问数据包,从而对其产生一定的安全威胁。而计算机网络系统设计不完善会对网络完全造成一定威胁,只有完善网络系统,使其系统设计合理化,才能在节约资源的状况下,达到保证安全性的目的。现阶段网络自身所具备的广泛性特征越来越明显,非法入侵之类的攻击性网络行为成了计算机网络方面防御起来比较困难的安全威胁。 1.3确保网络安全 存在两种比较有效的途径可以确保网络的安全性。第一种是给数据加密,其是利用链路或者是端端完成加密操作,还能用过节点或者是混合加密防止数据被非法破坏和恶意篡改,还能防止数据泄露等等。第二种是利用网络存取控制的方式确保其安全性,这种方式则是利用身份识别、存取权限的控制等等防止非法访问,避免造成数据丢失、泄密、破坏等之类的现象发生。 2防火墙技术分析 计算机和网络安全全文共4页,当前为第2页。计算机和网络安全全文共4页,当前为第2页。2.1包过滤性防火墙 计算机和网络安全全文共4页,当前为第2页。 计算机和网络安全全文共4页,当前为第2页。 这类型防火墙一般是在OSI参考模型中网络及传输层通过路由器实现对整个网络的保护。若是满足路由器里面的过滤条件就可以进行数据包转发,若是与其源头、目的地址、端口号等过滤条件不相符合,则会造成数据包丢失。这类型的防火墙不但工作比较透明,而且速度也比较快,工作效率比较高。需要注意的是这类型防火墙是不能支持应用层协议,换而言之就是当面对黑客对其进行网络攻击行为时,是没有办法防御的,而且面对一些新产生的安全威胁性问题也是处理不了的。 2.2NAT和应用型防火墙 这两种防火墙之中的NAT防御软件是通过IP地址转换成临时注册的IP地址。内部网访问外部网时,一旦成功通过安全网卡,那么此防火墙就会自动把源地址同端口伪装之后与外部相连。若是通过的非安全网卡,则访问是通过一个开放的IP与端口。这类型的防火墙是根据原本预设好的映射规则对安全性进行判断。后一种应用型防火墙则是运行在OSI的应用层,不但可以阻止网络的通信流,还可以实时监控,有很强的安全性。只是这类防火墙会对计算机网络系统的性能造成一定的影响,让管理变得相对复杂。 2.3状态检测型防火墙 它与其他类型进行对比,安全性更高,还有不错的扩展性,收缩度也很好。它是把相同连接的包看成整体数据流,而且还能对连接状态表中的状态因素进行区分与辨别。只是这类型防火会使得网络连接产生延缓滞留的问题。 3防火墙技术在计算机网络安全中的应用 综合分析计算机网络安全,也就是分析最终如何在网络这个复杂的环境中维护数据使用过程中的保密性与完整性。想要达到这个目的,可以通过对网络进行管理控制及技术解决的方法实现。通常情况是根据使用者的情况把网络安全分为物理安全、逻辑安全这两大类。普通的使用者认为计算机网络安全主要是能够在计算机和网络安全全文共4页,当前为第3页。计算机和网络安全全文共4页,当前为第3页。上传自己隐私时得到保护,信息可以不被窃听、篡改、伪造等。但是网络供应商却认为在此基础上,还需要考虑到某些能够对硬盘产生一定破坏的情况,网络出现异常,也需要得到保护。以下是网络安全中防火墙技术的实际运用。 计算机和网络安全全文共4页,当前为第3页。 计算机和网络安全全文共4页,当前为第3页。 3.1加密技术 网络加密技术是指发送信息的这个人先对信息进行加密处理,接触加密的密码由接收信息这方掌握。接收方接收信息之后就使用密码解除信息的加密状态,这样也就保证此次信息传输安全的完成。简而言之,加密技术也就是利用的密钥以保证信息在传输过程中的安全性。 3.2身份验证 身份验证是通过对网络用户使用权限进行授权,也就是说在此次信息的传输者与接收者二者之间进行身份验证。从而在网络环境中建立起一个相对比较安全的信息传输通道,很好地防止了那些没有得到授权的非法用户的介入。 3.3防病毒技术 防病毒技术这里主要是针对预防、清除、检测这方面
好的,以下是一个Python图书管理系统的代码实现,区分了管理员和读者登录的功能: ```python # 定义一个书籍类 class Book: def __init__(self, id, name, author, publish_date, status): self.id = id # 书籍编号 self.name = name # 书籍名称 self.author = author # 作者 self.publish_date = publish_date # 出版日期 self.status = status # 状态,0表示未借出,1表示已借出 # 定义一个图书馆类 class Library: def __init__(self, books=[]): self.books = books # 所有的书籍列表 self.reader = None # 当前登录的读者 self.manager = None # 当前登录的管理员 # 添加一本书籍 def add_book(self, book): self.books.append(book) # 显示所有的书籍信息 def show_all_books(self): print("书籍编号\t书籍名称\t作者\t出版日期\t状态") for book in self.books: print(book.id, "\t\t", book.name, "\t", book.author, "\t", book.publish_date, "\t", book.status) # 借阅一本书籍 def borrow_book(self, book_id): for book in self.books: if book.id == book_id: if book.status == 0: book.status = 1 print("借阅成功!") return else: print("很抱歉,此书已被借出!") return print("很抱歉,未找到此书!") # 归还一本书籍 def return_book(self, book_id): for book in self.books: if book.id == book_id: if book.status == 1: book.status = 0 print("归还成功!") return else: print("很抱歉,此书未被借出!") return print("很抱歉,未找到此书!") # 读者登录 def reader_login(self, username, password): # 根据用户名和密码查询读者信息 # 如果查询到,则登录成功,将读者信息保存到self.reader中 # 如果未查询到,则登录失败 pass # 管理员登录 def manager_login(self, username, password): # 根据用户名和密码查询管理员信息 # 如果查询到,则登录成功,将管理员信息保存到self.manager中 # 如果未查询到,则登录失败 pass # 添加读者 def add_reader(self, reader): # 需要管理员权限 # 如果当前用户是管理员,则可以添加读者,否则不能添加 pass # 删除读者 def delete_reader(self, reader_id): # 需要管理员权限 # 如果当前用户是管理员,则可以删除读者,否则不能删除 pass # 测试 if __name__ == '__main__': b1 = Book(1, "Python入门教程", "张三", "2021-01-01", 0) b2 = Book(2, "Java编程思想", "李四", "2021-02-01", 1) b3 = Book(3, "C++从入门到精通", "王五", "2021-03-01", 0) library = Library([b1, b2, b3]) library.show_all_books() # 读者登录 library.reader_login("reader1", "123456") library.borrow_book(1) # 管理员登录 library.manager_login("admin", "123456") library.add_reader("reader2") library.show_all_books() ``` 这个代码实现了区分管理员和读者登录的功能,并且在添加读者和删除读者等操作时,需要管理员权限才能执行。需要注意的是,这里的读者和管理员的登录验证、读者的添加和删除等操作都还没有具体实现,需要根据实际情况进行扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值