HTTP与会话管理

1、Content-Type

发送值得MIME类型,可通过HTML的form元素设置。默认为application/x-www-form-urlencoded。格式为“名称=值”的组合通过&相连,名称和值都经过百分号编码。

2、百分号编码

中文和特殊符号等不能直接用于URL,需要经过百分号编码才能用于URL。

百分号编码将字符以字节为单位转换成%xx形式。中文“德”进行UTF-8编码,可得到E5 BE B3字节列,百分号编码后即为%E5%BE%B3。

根据百分号编码规则,空格应为%20,但在application/x-www-form-urlencoded的情况下,空格则被特殊处理成+号。

3、Referer

当前页面的链接来源页面。

form元素发送的请求、a元素生成的链接或img元素的图像等也会产生referer头信息。

4、GET和POST的使用区别

*GET方法仅用于查阅(获取资源)

*GET方法被认为没有副作用(副作用是指,除了获取资源内容以外的qi它操作。)

*发送敏感数据时应使用POST方法

GET方法使用的是URL后紧跟查询字符串的形式来传递参数,由于浏览器和服务器能够处理的URL长度是有限的,所以当传递的信息量很大时,使用POST方法更安全。

GET方法存在如下风险:

URL中指定的参数经由Referer泄露;

URL中指定的参数残留在访问日志中(Access Log)。

5、Hidden、cookie、session

在认证和授权信息这样需谨防被用户自己更改的信息,应当保存在会话变量中。

除此以外的信息,则首先应考虑能否保存在hidden参数中。

在登录前的状态下,由于不存在与认证和授权相关的信息,因此,原则上要避免使用会话变量,而是应该使用hidden参数,来防止信息泄露。

6、HTTP认证功能

Basic认证、NTLM认证、Digest认证等。

Basic认证:

此认证下,当浏览器请求一个需要认证的网页时,服务器会先向浏览器返回“401 Unauthorized(未认证)”状态码。浏览器收到状态码后,会显示要求输入ID和密码的画面,然后再将输入的ID和密码t添加到请求信息中,再次向服务器发送。

Basic认证大多通过设置Web服务器来实现,也通过编写代码实现。

Authorization头信息:Basic后面的字符串内容,由ID和密码以冒号像个组成的字符串、在经过Base64编码后的结果。

认证成功一次以后,再向请求的目录发送请求时,浏览器会自动附带Authorization消息头。认证对话框只在最初的时候显示一次,每次请求时都会发送ID和密码,认证状态没有被保存在任何地方。Basic认证是无状态的,不存在注销的概念。

7、认证与授权

认证:通过一些方法手段来确认操作者确实是其本人。

授权:授予已经通过认证的用户一些权限。

8、Cookie与会话管理

附录:

百分号编码属于URL(URI)的规范,application/x-www-form-urlencoded属于HTML的规范,存在细微差别。

 

猜你喜欢

转载自www.cnblogs.com/wcsan/p/9145982.html
今日推荐