《http权威指南》读书笔记 七

HTTP认证

http认证形式分为基本认证和摘要认证

1、基本认证:

1) 客户端向服务端发出请求后,服务端并不是直接返回请求的文档(200 OK),而是在响应报文中加入WWW-Authenticate首部,该首部后面附带该次需要认证的域(网站的不同部分可能需要不同的认证密码),返回401(Authorization Request)。

2) 客户端收到该响应后,会再次发送请求,并在请求报文中加入Authorization首部,后面附带登陆信息。

3) 服务端收到登陆信息的请求后,如登陆信息正确,则正常返回200 OK。

由于基本认证方式是将用户名和密码在报文中传输,这样就会有安全问题。虽然用户信息是经过Base-64加密过的,但是这种加密方式很容易被逆编译破解,或者在传输过程中被第三方截获、篡改等。

2、摘要认证:

摘要验证方式过程与基本验证方式相同,只是在传输认证信息时,摘要验证并不向服务端发送用户信息的Base-64加密码,而是只发送一个密码的摘要信息。服务器本身知道所有用户的密码,当它得到这个摘要后,会通过计算获得这个密码,然后与本地保存的密码匹配以判断是否正确。

时间: 2024-10-10 01:32:38

《http权威指南》读书笔记 七的相关文章

《算法导论》读书笔记(七)

前言:贪心算法也是用来解决最优化问题,将一个问题分成子问题,在现在子问题最优解的时,选择当前看起来是最优的解,期望通过所做的局部最优选择来产生一个全局最优解.书中先从活动选择问题来引入贪心算法,分别采用动态规划方法和贪心算法进行分析.本篇笔记给出活动选择问题的详细分析过程,并给出详细的实现代码进行测试验证.关于贪心算法的详细分析过程,下次在讨论. 1.活动选择问题描述   有一个需要使用每个资源的n个活动组成的集合S= {a1,a2,···,an },资源每次只能由一个活动使用.每个活动ai都有

Android驱动开发读书笔记七

第七章 (一)创建设备文件 1.使用cdev_init函数初始化cdec 描述设备文件需要一个cdev结构体,代码如下: struct cdev{ struct kobject kobj; struct module *owener; const struct file_operations *ops; struct list_head list; dev_t dev; unsigned int count; } 大多数的成员变量不需要我们自己初始化,调用cdev-init函数即可. 2.指定设

Spring揭秘 读书笔记 七 BeanFactory的启动分析

首先,先看我自己画的BeanFactory启动时的时序图. 第一次接触时序图,可能有些地方画的不是很符合时序图的规则,大家只关注调用顺序即可. public static void main(String[] args){ BeanFactory factory=new XmlBeanFactory(new ClassPathResource("applicationContext2.xml")); } 我们从这一行代码开始. 关于Resources与ResourcesLoader的资

R语言实战读书笔记(七)基本统计分析

summary() sapply(x,fun,options):对数据框或矩阵中的每一个向量进行统计 mean sd:标准差 var:方差 min: max: median: length: range: quantile: vars <- c("mpg", "hp", "wt")head(mtcars[vars]) summary(mtcars[vars]) mystats <- function(x, na.omit = FALS

Distributed Programming With Ruby》读书笔记七 Starling and AMQP/RabbitMQ (Part3 chapter7-8)

Part III Distributed Message Queues Part III breaks from this "traditional" approach of distributed computing and looks at distributed message queues. Chapter7 Starling:  Including 9 parts: What Is a Distributed Message Queue? Installation Getti

这就是搜索引擎--读书笔记七--倒排列表压缩算法

倒排列表压缩算法 目前有很多种倒排列表算法可以选择,但是我们对评判算法的优劣需要定量指标.一般会考虑3个指标:压缩率.压缩速度以及解压速度. 压缩率是指数据压缩前和压缩后大小的比例,显然,压缩率越高,就越节约磁盘空间.而压缩速度是压缩单位量的数据所花的时间,但是压缩往往是在建立索引过程中进行的,这是一个后台进行的过程,不需要及时响应用户查询,即使速度慢一些也没有关系.所以普遍来说,压缩速度不是一个重要指标. 那么我们来看看解压速度.顾名思义,解压就是将压缩数据恢复到原始数据.这是一个实时响应过程

读书笔记(七)

LED灯的闪烁,控制发光二极管: 在上章我们已经了解了开发 Linux 驱动程序的步骤,并给了个示例来演示如何开发一个完 整的 Linux 驱动.但这个 Linux 驱动只简单演示了实现 Linux 驱动的步骤.而对于大多数 Linux 动来说,需要直接与硬件交互.在本章会完成个真正意义上的 inux 驱动.该 Linux 驱动用来控 制开发版上的 LED 小灯.也就是说通过向 Linux 驱动发送数据可以控制 LED 小灯的开关. LED驱动的实现原理:尽管 Linux 驱动直接与硬件打交道,

how tomcat works读书笔记 七 日志记录器

大家能够松一口气了,这个组件比較简单,这一节和前面几节想比,也简单的多. Logger接口 Tomcat中的日志记录器都必须实现org.apache.catalina.Logger接口. package org.apache.catalina; import java.beans.PropertyChangeListener; public interface Logger { public static final int FATAL = Integer.MIN_VALUE; public s

Machine Learning for hackers读书笔记(七)优化:密码破译

#凯撒密码:将每一个字母替换为字母表中下一位字母,比如a变成b. english.letters <- c('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z') caesar.cipher <- list() inverse.caesar.cipher <- list() #加密LIS