【web必知必会】—— 图解HTTP(下)
上一篇《图解HTTP 上》总结了HTTP的报文格式,发送方式,以及HTTP的一些使用。
本文再总结以下内容:
1 http状态码
2 http报文首部中的各字段
3 http中的身份验证
通过上篇粗略的描述,大体了解了http首部的概念。
其实请求报文与响应报文长得差不多,区别就在于请求报文与响应报文有一个各自的报文首部,和一个请求行和状态行。
可以看到,差别就在于
请求行中指定的是HTTP版本和请求的方式(GET\POST等)。
状态行中指定了HTTP版本和返回的状态码以及短语。
并且,请求首部与相应首部中拥有不同的属性,一会再说。
那么我们看看常见的状态码都有什么:
其中需要说明的是302,即临时重定向,这个比较常见。前两天我登百度的时候,突然发现前面的协议变成了https,我还纳闷,这两天在看又变回来了。原因就是当时访问www.baidu.com时默认使用Http,但是返回的302临时重定向和一个Location,我们的浏览器会自定跳转到这个返回的location:https://www.baidu.com中。由于现在改回来了,就不做截图说明了。
常见的一些状态码都在导图中列出来了,最常见的还是404:经常开发中遇到,就是因为访问的URL写错了。
再看看各首部字段中都有些什么内容吧。
这里面学问最大的当然要是Cahce了,合理的使用Cache会让网站的访问达到登峰造极的地步,当然!我不会.....
这些属性,用到的时候再详细查看吧,这里也就不一一赘述了。
HTTP+加密+认证+完整性保护=HTTPS
为什么会出现https呢,多个s又有什么用呢!
http有几个缺点:
1 传输的时候使用明文,这显然会被不法者截取干一些见不得人的勾当。
2 没有认证机制,这样我们就可以伪造一些http访问,这显然会造成一些困扰。比如Jmeter就是典型的例子,伪造一大堆的http URL然后压力测试,这也就是DOS攻击的一种。
3 无法验证报文的完整性,比如一个http的报文已经被不法者截取并且篡改,服务器端也无法验证。
而HTTPS相当于套上SSL的HTTP,相当于穿上黄金甲的青铜圣斗士:
不仅仅是逼格的提升!
但是HTTPS也有它自身的缺点:
1 通信的速度变慢,由于需要加密,一个握手就多了好几个往返
2 对用户端的机器负载的增加。
因此,如果不是像金融支付这种需要高强度的安全性的场景,还是http比较好。
最后看一下HTTP中关于认证的概念
有一些网址或者服务需要用户的身份信息,因此需要随时知道这些消息,但是肯定不能每次都让用户输入用户密码,因此关于认证就有下面几种方式:
其中BASIC认证是最简单的认证,大致过程如下:
1 客户端访问某URL。
2 服务器端返回401状态码,提示用户输入用户名密码。
3 用户输入用户名密码,通过BASE64编码传输。
4 服务器通过认证,返回状态码200
通过上面的过程,就可以发现BASIC的问题:
1 仅仅通过BASE64编码,其实还是属于明文传输,安全性不高
2 有的浏览器不支持注销
鉴于上面BASIC的问题,DIGEST做了补充,它的过程与上面类似:
1 客户端访问
2 服务器端返回质询码
3 客户端发送响应码
这里通过随机的生成质询码来作为计算的一种方式,客户端依据这个质询码生成响应码,进行验证。
这样就弥补了明文传输用户密码的风险。
SSL客户端验证,这个比较普遍了!
像支付宝啊,邮政网银啊之类的,在登录时,都需要下载一个数字认证的东西,这个东西就属于一种SSL客户端的验证。
很显然它的缺点就是需要客户去手动的安装,这个对于一般的用户来说,代价有点高。
最后一种是应用最普遍的,通过表单记录用户的身份信息,可以使用cookie或者session的方式保存用户信息。
参考
[1] wiki 302状态码:http://zh.wikipedia.org/wiki/HTTP_302
[2] http与https:http://19841026.iteye.com/blog/600615
[3] 状态码301 302:http://wlei1818.iteye.com/blog/1749456
[4] 《图解http》
转载于:https://www.cnblogs.com/lonelyxmas/p/4313873.html
【web必知必会】—— 图解HTTP(下)相关推荐
- java的标量和聚合量_第5节:Java基础 - 必知必会(下)
第5节:Java基础 - 必知必会(下) 本小节是Java基础篇章的第三小节,主要讲述Java中的Exception与Error,JIT编译器以及值传递与引用传递的知识点. 一.Java中的Excep ...
- 【软考系统架构设计师】第八章 Web架构(知识点必知必会)
[软考系统架构设计师]第八章 Web架构(知识点必知必会) 第八章 Web架构(知识点必知必会) [软考系统架构设计师]第八章 Web架构(知识点必知必会) 一. 负载均衡与集群技术 1)什么是负载均 ...
- linux运行界别,day7 Linux下必知必会文件(2)
主要内容: 运行级别 Linux下面必知必会文件和目录 Linux启动流程 一.运行级别 1.运行级别分为0--6共七级 具体如下表: 级别 CentOS 6 (run level) CentOS 7 ...
- 数据科普:期权的希腊字母 | 下(投资必知必会)
投资小课堂由开课啦???? 1.期权类型与到期盈亏 2.定价模型与平价关系式 3.期权价格和相关变量的关系 4.期权的希腊字母(上) 期权的希腊字母主要包括 Delta. Gamma. Theta.V ...
- Java架构师必知必会,带走不谢
可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地. 成为Java架构师,需要掌握哪些技能呢 ...
- 脑残式网络编程入门(三):HTTP协议必知必会的一些知识
为什么80%的码农都做不了架构师?>>> 本文原作者:"竹千代",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说&q ...
- 程序员必知必会之maillist篇
程序员必知必会之maillist篇 本文最初由恋花蝶发表于http://blog.csdn.net/lanphaday,可以随意转载,但未经同意不得增删修改,转载应保留本声明,否则追究责 ...
- 前端必知必会HTTP请求系列(二)简单一点的HTTP协议
http协议用户客户端和服务器之间的通信 http协议和TCP/IP协议族内的其他众多协议相同,用于客户端和服务器之间的通信. 那么问题来个如果两台服务器之间一台服务器向另一台服务器进行接口请求那谁是 ...
- SpringBoot入门到精通_第6篇 _必知必会
接上一篇:SpringBoot入门到精通_第5篇 _SpringBoot Actuator监控 https://blog.csdn.net/weixin_40816738/article/detail ...
最新文章
- centos系统为php安装memcached扩展步骤
- 了解Windows内核内存池
- 书籍推荐(2016-2020)--统计数学计算机为主,心理学为辅
- java_options字符串拼接_java8 StringJoiner拼接字符串
- 全国计算机等级考试题库二级C操作题100套(第06套)
- 安装dubbo管理控制台
- ubuntu20.04安装qq音乐并解决闪退问题
- HOG特征和Haar特征
- 通信总线-现场总线-CAN
- python requests 由于目标计算机积极拒绝,无法连接
- 南京信息工程大学 第二届程序设计大赛团队赛 试题
- Webpack 理解 Chunk
- dva的用法_dva 的基本用法
- Linux - gzip使用
- 使用Python对Dicom文件进行读取与写入的实现(pydicom 和 SimpleITK)
- java localdate_Java LocalDate now()用法及代码示例
- 2016 多校4 1002 After a Sleepless Night 树上贪心
- BLDC的速度闭环控制
- android 盒子排名,2021电视盒子排名:业内公认最好用的五大电视盒子
- SVM支持向量机——MATLAB在数学建模中的应用
热门文章
- 程序员Linux学到什么程度,Linux学到什么程度,才可以找到合适的工作?
- java51游戏_简单实现美空军也得玩的游戏-谁能坚持超过50秒?(Java)
- 公文字体字号标准2020_党政机关公文格式(收藏)
- 002_Container布局容器
- c 语言贪心钓鱼思路,2020届九年级中考语文复习教案:第4讲现代文阅读之概括(27页)-原创力文档...
- hpe服务器有哪些型号,HPE ProLiant DL80 Gen9 服务器 - 惠普服务器配置参数
- android device monitor命令行窗口在哪里_Vulkan在Android使用Compute shader
- java swing 树_Java Swing JTree 树形
- Java设计模式(四):工厂设计模式
- LetCode: 150. 逆波兰表达式求值