码农《三》

码农(第14期)

Web的基础:HTTP原理图解
2015-07-15
URI有两种形式,分别称为URL和URN。现在我们分别来看看这些资源标识符类型。
图4 URL说明了协议、服务器和本地资源URL统一资源定位符(URL)是资源标识符最常见的形式
2015-07-15
大部分URL都遵循一种标准格式,这种格式包含三个部分。
URL的第一部分被称为方案(scheme),说明了访问资源所使用的协议类型。这部分通常就是HTTP协议(http://)。第二部分给出了服务器的因特网地址(比如,www.joeshardware.com)。
其余部分指定了Web服务器上的某个资源(比如,/specials/sawblade.gif)。现在,几乎所有的URI都是URL
2015-07-15
URN
URI的第二种形式就是统一资源名(URN)。URN是作为特定内容的唯一名称使用的,与目前的资源所在地无关。使用这些与位置无关的URN,就可以将资源四处搬移。通过URN,还可以用同一个名字通过多种网络访问协议来访问资源。比如,不论因特网标准文档RFC 2141位于何处(甚至可以将其复制到多个地方),都可以用下列URN来命名它:
urn:ietf:rfc:2141URN仍然处于试验阶段,还未大范围使用。为了更有效地工作,URN需要一个支撑架构来解析资源的位置。而此类架构的缺乏也延缓了其被采用的进度。但URN确实为未来发展作出了一些令人兴奋的承诺。
除非特殊说明,否则本文的其余部分都会使用约定的术语,并且会不加区别地使用URI和URL。
2015-07-15
一些常见的HTTP方法
HTTP方法描述GET
从服务器向客户端发送命名资源PUT
将来自客户端的数据存储到一个命名的服务器资源中去DELETE
从服务器中删除命名资源POST
将客户端数据发送到一个服务器网关应用程序HEAD
仅发送命名资源响应中的HTTP首部
2015-07-15
一些常见的HTTP状态码HTTP方法
描述200
OK。文档正确返回302
Redirect(重定向)。到其他地方去获取资源404
Not Found(没找到)。无法找到这个资源
如何开始一个模块化可扩展的Web App
2015-07-16
HTML5 Boilerplate的文件结构如下,
. ├──css
│├──main.css │└──normalize.css
├──doc ├──img
├──js │├──main.js
│├──plugins.js │└──vendor
│├──jquery.min.js │└──modernizr.min.js
├── .htaccess ├──404.html
├──index.html ├──humans.txt
├──robots.txt ├──crossdomain.xml
├──favicon.ico └── [apple-touch-icons]
从上向下看css用于存放css文件,并内置了Normalize.css作为默认CSS重置手段(其实Normalize.css不能算是CSS reset)。
doc存放项目文档。img存放项目图片。
js存放javascript文件,其中第三方类库推荐放在vendor下。.htaccess内置了很多对于静态文件在Apache下的优化策略,如果Web服务器不是Apache则可以参考其他Web服务器配置优化。
404.html默认的404页面,index.html项目模板。
humans.txt相对于面向机器人的robots.txt,humans.txt更像是小幽默,这在里可以写关于项目/团队的介绍,或者放置一些彩蛋给那些喜欢对你的应用刨根问底的用户们。robots.txt用于告诉搜索引擎蜘蛛爬行规则。
crossdomain.xml用于配置Flash的跨域策略。favicon.ico apple-touch-icon.png等小图标。
如果是一个主要面向移动设备,还有更具针对性的Mobile Boilerplate可供参考。
2015-07-16
meta标签的书写顺序
为了让浏览器识别正确的编码,meta charset标签应该先于title标签出现
2015-07-16
设置移动设备显示窗口宽度
这是移动设备专属的标签,具体设置需要根据项目实际情况调整。
2015-07-16
使用LESS或Sass生成CSS
在复杂应用中,如果还手写CSS的话将是一件痛苦的事情,大量的class前缀,复用样式需要来回copy等等。为了更好的扩展性,这里建议在项目中引入LESS或Sass。这代表着:支持变量与简单运算
支持CSS片段复用class/id样式嵌套
2015-07-16
使用requireJS按需加载
模块加载器的概念可能稍微接触过前端开发的童鞋都不会陌生,通过模块加载器可以有效的解决这些问题:1. JS文件的依赖关系。
2. 通过异步加载优化script标签引起的阻塞问题。3. 可以简单的以文件为单位将功能模块化并实现复用。
主流的JS模块加载器有requireJS,SeaJS等,加载器之间可能会因为遵循的规范不同有微妙的差别,从纯用户的角度出发,之所以选requireJS而不是SeaJS主要是因为:功能实现上两者相差无几,没有明显的性能差异或重大问题。
文档丰富程度上,requireJS远远好于SeaJS,就拿最简单的加载jQuery和jQuery插件这回事,虽然两者的实现方法相差无几,但requireJS就有可以直接拿来用的Demo,SeaJS还要读文档自己慢慢折腾。一些问题的解决上,requireJS为关键词也更容易找到答案。
2015-07-16
requireJS加载jQuery + jQuery插件
可能对于一般Web App来说,引入jQuery及相关插件的概率是最大的,requireJS也亲切的给出了相应的解决方案及动态加载jQuery及插件的文档及实例代码。

duokanbookid:afc71420517f44e2869436e0dbb1ca2a

你可能感兴趣的:(读书笔记)