HTTP协议
翁正存
做一名合格的工程师
展开
-
为什么要使用Base64编码
Base64原理:将8位的二进制字节序列划分为6位的块,不足的尾部补0(以=结尾),然后将这些6位的块映射到一张含有64个字符的表中。为什么要使用Base64呢?1、防止透传用户名和密码2、用户输入的信息中如果包含国际字符或者Http头无法识别的字符,则必须将要传输的信息转为Base64,因为Base64是ASCII的子集,http协议可以识别。...原创 2018-12-27 16:37:18 · 1641 阅读 · 0 评论 -
http证书摘要防重放
如果http的认证证书摘要是不变的,就存在被第三方截获http请求中的证书摘要后重放给服务的危险。解决办法是服务器发给客户端的401响应中带上一个随机数salt,这个salt必须保持一定的新鲜度,例如每个salt可以重用5次或者10秒,当然你也可以追求绝对的安全,从而每次都要使用一个新的salt,但这样性能未必达标,总之,要在性能和安全之间做好权衡。...原创 2018-12-27 19:43:56 · 559 阅读 · 0 评论 -
HTTP认证
基本认证:用户信息BASE64后传给服务器,存在被第三方截获,篡改报文内容或实施重放攻击的危险。摘要认证:使用有过期时间的随机数做对称密钥,使用MD5加密报文,能有效防止报文内容被篡改或者重放攻击。但是,存在N个服务器节点与N个客户端交互时,会产生N的二次方个密钥,服务器难以维护数量如此庞大的密钥。证书认证:使用CA证书,在证书中公开唯一的公钥,服务器自己保管唯一的私钥,可以完美解...原创 2018-12-29 11:01:13 · 437 阅读 · 1 评论 -
对URL的理解
首先URL是全网唯一的,可以唯一确定一个资源的地址。URL是URI的一个子集,URI除了URL还有URN,URN是资源的名称固定,但对应资源的位置可能是变化的,最常见的就是小黄片,名称不变,但映射的资源地址变了。看一个常规的url: https://baike.baidu.com:80/item/鬼谷子全集/7589785;sale=false?fr=aladdinhttps:协...原创 2018-12-24 10:39:47 · 779 阅读 · 0 评论 -
HTTP协议骨干知识
粗略读了一遍《HTTP权威指南》,觉得学习HTTP协议主要掌握5大功能点:1.代理:学完这个,尝试着搭建一个代理服务器,连到墙外的网络。2.认证:理解对称密钥、公开秘钥、证书、HTTPS以及SSL。3.重定向与负载均衡:结合代理来看效果更佳。4.HTTP报文信息:主要知道2XX/3XX/4XX/5XX代表什么意思。5.缓存:内容分发网络可以利用缓存提高访问到达速度。...原创 2018-12-29 11:47:25 · 184 阅读 · 0 评论 -
5层协议
http:应用层TCP:传输层IP:网络层ARP:链路层路由器/交换机:物理层使用http访问资源,必须先建立TCP/IP连接,然后发送HTTP报文。原创 2018-12-24 11:38:54 · 197 阅读 · 0 评论 -
隧道技术
挂羊头卖狗肉的技术实现。如果B/S或C/S中间的防火墙只支持使用http协议来访问资源,而你想使用https协议进行资源访问,直接使用https会被防火墙视为攻击流量而被挡掉,为此,有了隧道技术,将https请求封装在http请求中,从而绕过防火墙,访问到资源。...原创 2018-12-24 15:56:36 · 774 阅读 · 0 评论