HTTP与会话管理
Posted wcsan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的规范,存在细微差别。
以上是关于HTTP与会话管理的主要内容,如果未能解决你的问题,请参考以下文章