http是咱们不论哪一个语言、哪一个框架的web开发者,都必须天天面对和打交道的,它是客户端与服务器之间的传输协议,是web可以存在的基石。java
可是每每由于http偏底层,虽然咱们每天用它,但大部分的程序员对其却知之甚少,咱们可能知道不少PHP的、js的、java等的相关知识,可是http的,却谈不出太多来。http就像是一条特殊的高速公路,若是咱们只是对本身的车了如指掌,但对路况却一无所知,那你的车再好,估计也不可能最快最安全地到达目的地。laravel
或者也能够把http比做一条你不得不天天都面对的狗,那么怎么样一块儿和气相处呢?你不能老是躲着它吧?你就必须得了解它,投其所好,这样才能真正和平相处,为你所用。那么这个专场,就是让http最终成为你听话的宠物。程序员
检验你http掌握状况的几个例子:
- 假设你的站点默认返回的是json格式数据,这时候忽然有客户须要xml格式的了,怎么办?是在url里加上文件名后缀吗,好比/dogs/corgi.json和/dogs/corgi.xml这样来分别访问?仍是用query参数,好比/dogs/corgi?query=json和/dogs/corgi?query=xml,这样吗?若是告诉你,这两种都很是不规范呢?能想到真正合适的规范作法吗?进而,对http的内容协商机制,有足够的了解吗?
- 假设你上面的问题用http的方式解决了,那么随着你的站点愈来愈火,你得加上缓存层了,好比varnish,原来你一个url能够根据状况输出多种格式的内容,可是由于有了缓存层,它给你只缓存了一份怎么办?致使别的访问另外一种格式的用户,能获取到的,只是最早被缓存到的格式,这可不行。你固然也不想,每一种格式,还都再去访问一下后端,那样要了缓存层还干吗,就起不到加速效果了,这个时候怎么办呢?能想到http自己的解决方案吗?
- 好了,既然说到了性能,说到了缓存,并且以前学过咱们专场《【laravel国际会议】使用Varnish来构建应用“缓存层”和负载均衡》的同窗也都知道,不管是云端的缓存层,好比varnish那些,仍是你本地的缓存,好比浏览器缓存,都严重依赖http相关的header才能实现,http header每每才是各类缓存机制成功的关键,那么,能够问问本身,如何用http header加速本身的站点呢?你能想到哪些,它们分别的原理是怎样的?
- 假设你的一个API接口上有较多json数据,加载一次还挺耗时的,可是你的用户都是熊孩子,不知道节省你的资源和宽带,就是一个劲地刷新,并且在实现的时候还故意用上轮询脚本,假设就是一分钟请求你三次,而你的资源并无那么频繁改动。你如何想个办法,让它在每次请求的时候,先检查你的内容变了没,没变,就只返回个消息,不返回实际内容,变了他才获得所有内容,这怎么实现呢?因于此,考虑下,如何利用http作条件性请求呢?也即只有知足,或不知足某个条件,才去发送相应请求,就像PHP里的if判断同样,无非是用http来实现
若是这些问题你心有疑惑,那么这个专场你不容错过。web
末了,欢迎到个人站点https://www.pilishen.com/来作客哦,也欢迎加入咱们的公开群【公开课@pilishen.com】:109256050,等你哦~json