清华课程-web 发展/前端概述

76
Web 发展/前端概述 rank @ FEX

Upload: rank-liu

Post on 26-May-2015

248 views

Category:

Technology


0 download

DESCRIPTION

Tsinghua University Front-End course

TRANSCRIPT

Page 1: 清华课程-Web 发展/前端概述

Web 发展/前端概述rank @ FEX

Page 2: 清华课程-Web 发展/前端概述

- 刘平川,⺴⽹网名 rank;- 8 年开发经验;- 08 年⼊入职百度,现任 FEX 总负责⼈人;- 关注前端技术、电商、及新兴产品;- 喜欢旅⾏行,有摄影爱好;

关于我- http://rank.im- [email protected] t.sina.com/rank

Page 3: 清华课程-Web 发展/前端概述
Page 4: 清华课程-Web 发展/前端概述
Page 5: 清华课程-Web 发展/前端概述
Page 6: 清华课程-Web 发展/前端概述
Page 7: 清华课程-Web 发展/前端概述
Page 8: 清华课程-Web 发展/前端概述
Page 9: 清华课程-Web 发展/前端概述

- Web 发展/前端概述 - HTML/CSS 概要讲解 - 前端常⽤用⼯工具

Roadmap

by Ian Sane

Page 10: 清华课程-Web 发展/前端概述

I. Web 发展史

- 了解 Web 产⽣生场景 - 理解 Web 架构原型 - 掌握 Web 架构核⼼心

http://info.cern.ch/hypertext/WWW/TheProject.html by pgpdesign (paul)

Page 11: 清华课程-Web 发展/前端概述

ARPANET

1969 年 11 ⽉月

创世纪— ⽂文顿·瑟夫

Page 12: 清华课程-Web 发展/前端概述

为什么是创世纪

- 物理机器互联 - 异构⽹网络协议 TCP/IP - ⽂文件传输协议 FTP

1969 年 11 ⽉月

Page 13: 清华课程-Web 发展/前端概述

ARPANET 解决异种机⽹网络互联的⼀一系列理论和技术问题

Page 14: 清华课程-Web 发展/前端概述

20 年后的某⼀一天

Page 15: 清华课程-Web 发展/前端概述

CERN 梦开始的地⽅方欧洲核⼦子研究组织

1989 年 3 ⽉月

Page 16: 清华课程-Web 发展/前端概述

1989 年 3 ⽉月

Tim Berners-LeeInformation Management: A Proposal

@CERN1989 年 3 ⽉月

欧洲核⼦子研究组织

Page 17: 清华课程-Web 发展/前端概述

1989 年 3 ⽉月

浏览器「系统」真正⾃自由获取信息的开始

开创新世代

1990 年 12 ⽉月

Page 18: 清华课程-Web 发展/前端概述

怎么会有 GUI 界⾯面1990 年 12 ⽉月

Page 19: 清华课程-Web 发展/前端概述

怎么会有 GUI 界⾯面1990 年 12 ⽉月

NeXT Windows 3.0

Page 20: 清华课程-Web 发展/前端概述

- 超链⽂文本 HyperText - URL 定位 - 标记语⾔言 HTML - 传输协议 HTTP

Web 构成

Page 21: 清华课程-Web 发展/前端概述

HTML/Doc

HyperLink

HTTP HTTP

Client

HTML/Doc

URI URI

Web 架构概念

Page 22: 清华课程-Web 发展/前端概述

打破传递信息的最后障碍

by Marco Di Fabio

Page 23: 清华课程-Web 发展/前端概述

March 1989: “Information Management: A Proposal” written by Tim Berners-Lee (TBL) and circulated for comments at CERN.

March 2014

http://www.webat25.org/about/history/

Page 24: 清华课程-Web 发展/前端概述

http://www94.web.cern.ch/WWW94/ http://www2014.kr/

WWW International Conference• • • • • • • • • • • • • • • • • • • • • • • • • •

Page 25: 清华课程-Web 发展/前端概述

嫁接超⽂文本发明了 HTTP

发明了 URL第⼀一个 WebServer

第⼀一个浏览器

成⽴立 WWW

- Web 基础架构长达 25 年⽆无⼤大变化

- Web 免版权费

Web 惊叹之处

Page 26: 清华课程-Web 发展/前端概述

「与其他所有推动⼈人类进程的发明不同,这是⼀一件纯粹个⼈人的劳动成果,万维⽹网只属于伯纳斯·李⼀一个⼈人」。

⼀一个⼈人的贡献。

Page 27: 清华课程-Web 发展/前端概述

Web 产⽣生原理

- 了解信息 - 发现问题 - 整合技术 - 创新产品

by MAMJODH

Page 28: 清华课程-Web 发展/前端概述

下个 25 年 Web 是什么样的

思考

Page 29: 清华课程-Web 发展/前端概述

II. HTTP 协议简介Web 架构的核⼼心

by m vitor

Page 30: 清华课程-Web 发展/前端概述

URLprotocol:// hostname[:port]/path/[;parameters][?query]#fragment

- http(s)!- ftp!- gopher!- mailto!- thirdparty

Uniform Resource Locator

Page 31: 清华课程-Web 发展/前端概述

HTTPHTTP协议(HyperText Transfer Protocol,超⽂文本传输协议) 是⽤用于从 WWW 服务器传输超⽂文本到本地浏览器的传送协议。

Page 32: 清华课程-Web 发展/前端概述

HTML/Doc

HyperLink

HTTP HTTP

Client

HTML/Doc

URI URI

Web 架构概念

Page 33: 清华课程-Web 发展/前端概述

Why a new HTTP protocol?- Why not FTP - Why not News Protocol

Page 34: 清华课程-Web 发展/前端概述

Existing protocols cover a number of different tasks.!- File transfer protocols allow the transfer of data at the request of either the sender or receiver, but

allow little processing of the data at the responding side.- Mail protocols allow the transfer of transient messages from a single author to a small number of

recipients, at the request of the author.- News protocols allow the broadcast of transient data to a wide audience.- Search and Retrieve protocols allow index searches to be made, and allow document access. Few

exist: Z39.50 is one and could be extended for our needs.!The protocol we need for information access (HTTP) must provide!- A subset of the file transfer functionality - The ability to request an index search- Automatic format negotiation.- The ability to refer the client to another server

Why a new protocol?

http://www.w3.org/Protocols/WhyHTTP.html

Page 35: 清华课程-Web 发展/前端概述

HTTP 协议特点

- 简单,快速理解与部署 - 快速,更少的服务器资源 - 灵活,可传输任何数据对象 - ⽆无状态,只保留本次链接状态

Page 36: 清华课程-Web 发展/前端概述

HTTP 协议版本

- HTTP 0.9 - HTTP 1.0 - HTTP 1.1 - HTTP 2.0

Page 37: 清华课程-Web 发展/前端概述

HTTP 协议内容

- HTTP 消息结构 - HTTP 请求⽅方法 - HTTP 请求头信息 - HTTP 状态码

Page 38: 清华课程-Web 发展/前端概述

请求⽅方法 空格 URL 空格 协议版本 回⻋车请求⾏行

头部字段名 : 字段值

换⾏行

回⻋车 换⾏行

回⻋车 换⾏行

请求头

请求内容

头部字段名 : 字段值 回⻋车 换⾏行

HTTP 消息结构 Request

Page 39: 清华课程-Web 发展/前端概述

HTTP 消息结构 Request

GET /hello.txt HTTP/1.1!User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3!Host: www.example.com!Accept-Language: en, mi

请求⽅方法 空格 URL 空格 协议版本 回⻋车请求⾏行

头部字段名 : 字段值

换⾏行

回⻋车 换⾏行

回⻋车 换⾏行

请求头

请求内容

Page 40: 清华课程-Web 发展/前端概述

协议版本 空格 状态码 空格 状态内容 回⻋车状态⾏行

头部字段名 : 字段值

换⾏行

回⻋车 换⾏行

回⻋车 换⾏行

消息头

消息内容

头部字段名 : 字段值 回⻋车 换⾏行

HTTP 消息结构 Response

Page 41: 清华课程-Web 发展/前端概述

HTTP/1.1 200 OK!Date: Mon, 27 Jul 2009 12:28:53 GMT!Server: Apache!Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT!ETag: "34aa387-d-1568eb00"!Accept-Ranges: bytes!Content-Length: 51!Vary: Accept-Encoding!Content-Type: text/plain

HTTP 消息结构 Request

Page 42: 清华课程-Web 发展/前端概述

HTTP 请求⽅方法

GET!

POST!

HEAD!

PUT!

DELETE!

TRACE!

CONNECT!

OPTIONS

请求获取Request-URI所标识的资源

在Request-URI所标识的资源后附加新的数据

请求获取由Request-URI所标识的资源的响应消息报头

请求服务器存储⼀一个资源,并⽤用Request-URI作为其标识

请求服务器删除Request-URI所标识的资源

请求服务器回送收到的请求信息,主要⽤用于测试或诊断

保留将来使⽤用

请求查询服务器的性能,或者查询与资源相关的选项和需求

Page 43: 清华课程-Web 发展/前端概述

HTTP 状态码

状态码分类 状态码内容

1** 信息,服务器收到请求,需要请求者继续执⾏行操作

2** 成功,操作被成功接收并处理

3** 重定向,需要进⼀一步的操作以完成请求

4** 客户端错误,请求包含语法错误或⽆无法完成请求

5** 服务器错误,服务器在处理请求的过程中发⽣生了错误

Page 44: 清华课程-Web 发展/前端概述

HTTP 状态码

200 - 请求成功 301 - 资源(⽹网页等)被永久转移到其它 URL 304 - 缓存 404 - 请求的资源(⽹网页等)不存在 500 - 内部服务器错误

Page 45: 清华课程-Web 发展/前端概述

HTTP 状态码301 302 有什么区别?

Page 46: 清华课程-Web 发展/前端概述

HTTP 缺陷

Page 47: 清华课程-Web 发展/前端概述

HTTP 中间⼈人攻击Man-in-the-Middle Attack

偷梁换柱 Server

Middle

Page 48: 清华课程-Web 发展/前端概述

HTTP 明⽂文传输

Page 49: 清华课程-Web 发展/前端概述

Hyper Text Transfer Protocol over Secure Socket Layer

HTTPS

- TSL

- SSL

Page 50: 清华课程-Web 发展/前端概述

从输⼊入 URL 到⽹网页加载完成中发⽣生了什么

思考

http://fex.baidu.com/blog/2014/05/what-happen/

Page 51: 清华课程-Web 发展/前端概述

III. Web 前端简介

- 什么是 Web 前端 - 前端⼯工作⽅方式 - 前端发展及变化 - 前端的⼀一些案例

Page 52: 清华课程-Web 发展/前端概述

什么是 Web 前端

by generalstussner

Page 53: 清华课程-Web 发展/前端概述

Tell the browser what to do

Page 54: 清华课程-Web 发展/前端概述

Tell the browser what to do

Page 55: 清华课程-Web 发展/前端概述

你在百度做什么。

Page 56: 清华课程-Web 发展/前端概述

⽗父⺟母的困惑: 你在百度做什么。

Page 57: 清华课程-Web 发展/前端概述

Web 前端⼯工作

界⾯面交互 业务

Page 58: 清华课程-Web 发展/前端概述

Web 前端⼯工作

所见即所得 内容多样性 编程门槛低

交互界⾯面

Page 59: 清华课程-Web 发展/前端概述

Web 前端⼯工作

— ⽤用户体验是根本

Page 60: 清华课程-Web 发展/前端概述

页⾯面性能对产品影响

⽩白屏时间

⾸首屏时间

Page 61: 清华课程-Web 发展/前端概述

Web 前端

越来越多⼈人加⼊入到

Page 62: 清华课程-Web 发展/前端概述

前端与哪些⼈人打交道在各⼤大互联⽹网公司⾥里

Page 63: 清华课程-Web 发展/前端概述

前端 ⼯工程师

后端 ⼯工程师

产品经理

视觉/交互

运营经理

Page 64: 清华课程-Web 发展/前端概述

前端的发展及变化在各⼤大互联⽹网公司⾥里

Page 65: 清华课程-Web 发展/前端概述

界⾯面交互 JavaScript

业务逻辑 JavaScript

⺴⽹网⻚页结构 HTML 布局样式 CSS

⺴⽹网⻚页内容 HTML

Page 66: 清华课程-Web 发展/前端概述

界⾯面交互 JavaScript

业务逻辑 JavaScript

⺴⽹网⻚页结构 HTML 布局样式 CSS

⺴⽹网⻚页内容 HTML

重构⼯工程师

JavaScript ⼯工程师

Page 67: 清华课程-Web 发展/前端概述

界⾯面交互 JavaScript

浏览器业务逻辑 JavaScript

⺴⽹网⻚页结构 HTML 布局样式 CSS

⺴⽹网⻚页内容 HTML

WebServer Nginx/Apache/IIS

服务器业务逻辑 PHP/NodeJS/Python/Java/ASPX }全 栈 ⼯工 程 师

前端

Page 68: 清华课程-Web 发展/前端概述

界⾯面交互 JavaScript

浏览器业务逻辑 JavaScript

⺴⽹网⻚页结构 HTML 布局样式 CSS

⺴⽹网⻚页内容 HTML

⼿手机 PC TV Pad 其他

终端展现

Page 69: 清华课程-Web 发展/前端概述
Page 70: 清华课程-Web 发展/前端概述

全端 ⼯工程师

Page 71: 清华课程-Web 发展/前端概述

前端的⼀一些案例在各⼤大互联⽹网公司⾥里

Page 72: 清华课程-Web 发展/前端概述
Page 73: 清华课程-Web 发展/前端概述
Page 74: 清华课程-Web 发展/前端概述
Page 75: 清华课程-Web 发展/前端概述
Page 76: 清华课程-Web 发展/前端概述

总结

- Web 发展史与意义 - HTTP 协议 - Web 前端历史 - Web 前端⼯工作

谈谈这节课的感受