任务一

2016-03-22  本文已影响0人  jplyue

第一章 一个普通网站访问的过程

  1. 用户操作浏览器访问,浏览器向服务器发出一个 HTTP 请求;
  2. 服务器接收到 HTTP 请求,Web Server 进行相应的初步处理,使用服务器脚本生成页面;
    服务器脚本(利用Web Framework)调用本地和客户端传来的数据,生成页面;
  3. Web Server 将生成的页面作为 HTTP 响应的 body,根据不同的处理结果生成 HTTP header,发回给客户端;
  4. 客户端(浏览器)接收到 HTTP 响应,通常第一个请求得到的 HTTP 响应的 body 里是 HTML 代码,于是对 HTML 代码开始解析;
  5. 解析过程中遇到引用的服务器上的资源(额外的 CSS、JS代码,图片、音视频,附件等),再向 Web Server 发送请求,Web Server 找到对应的文件,发送回来;
  6. 浏览器解析 HTML 包含的内容,用得到的 CSS 代码进行外观上的进一步渲染,JS 代码也可能会对外观进行一定的处理;
    用户与页面交互(点击,悬停等等)时,JS 代码对此作出一定的反应,添加特效与动画;
    交互的过程中可能需要向服务器索取或提交额外的数据(局部的刷新,类似微博的新消息通知),一般不是跳转就是通过 JS 代码(响应某个动作或者定时)向 Web Server 发送请求,Web Server 再用服务器脚本进行处理(生成资源or写入数据之类的),把资源返回给客户端,客户端用得到的资源来实现动态效果或其他改变。

后端的种种

为了方便调试,很多 Web Framework 会自带一个简单的 Web Server,或者有些 Web Server 会自带一个简单的 Web Framework ,实际部署到服务器上开放使用的时候为了性能或者安全等多方面的考虑,可以把内置的 Web Server 换成其他的,比如 Apache 或者 Nginx (举个栗子,知乎用的是 Tornado 做 Framework,Server 换成了 Nginx,见知乎使用了哪些框架和开源库?)。如果是开源的东西,还可以在遵守开源协议的前提下自己改一下再用~因为后端不像前端已经有 HTML + CSS + JS 这样的既定事实标准,服务器脚本与 Web Framework 的选择很多,所以新手会听到很多眼花缭乱的技术名词的地方多在这里~ 举一些栗子,早年常见的服务器端语言有:

现在在这方面的应用热起来的语言有

几种常见的架构包括:

一般来说重点不在技术而且在乎成本的新网站比较喜欢用 LAMP,重视安全稳定和速度的企业和机构喜欢 J2EE,想省事的网站喜欢 http://ASP.NET**,比较 Geek 的网站和创业公司喜欢折腾各种 Python、Ruby、Node.js世界的东西,Google 这样现成的技术都解决不了需求的超大型网站就自己折腾解决方案。

作者:张秋怡链接:https://www.zhihu.com/question/22689579/answer/22318058来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


一些元素可以只有特性名没有特性值。它们的特性名类似“是非”,“有或没有”,所以可以省略特性值,所以下面三种写法都是一样的意思:

<input required="required">
<input required="">
<input required>

> 表示大于符号">" (>)
< 表示小于符号"<" (<)
& 表示和符号"and"(&)
" 表示引用符号" (")
上一篇下一篇

猜你喜欢

热点阅读