贬迟迟辫协议介绍
- 7. 对于HTTP的问题
? HTTP是什么?
? 工作原理是什么?
? HTTP和HTTPS的区别?
? 重要的头信息有哪些,都有什么作用?
? 非文本(图片、文件)是怎么传输的?
? ……
淘宝-北京研发中心-UED-前端 7
- 8. HTTP是什么?
? http://zh.wikipedia.org/zh-cn/Http
? URI/URL/URN
? C/S模式
? Application Layer(类似FTP,SMTP等等)
? Request/Response范式
? RFC2616 http://tools.ietf.org/html/rfc2616
? 超文本“转移”协议
淘宝-北京研发中心-UED-前端 8
- 9. 历史版本
? HTTP/0.9
? 跨网络的简单原始数据传输,只接受 GET ,通讯中不指定版本
号,且不支持请求头,已过时
? HTTP/1.0
? 还在使用,尤其在代理服务器应用方面,RFC1945
? 通讯中指定版本号,MIME消息格式
? HTTP/1.1
? 默认持久链接,分层代理,考虑了缓存、虚拟
主机等等影响
淘宝-北京研发中心-UED-前端 9
- 12. 动手验证
Terminal wireshark
Fiddler2
? 动手练习15min时间
淘宝-北京研发中心-UED-前端 12
- 16. 几个概念
? 4.响应(Response):一个从服务器返回的信息包
括HTTP协议的版本号、请求的状态和文档的
MIME类型,文档实体。
? 5.资源(Resource):由URI标识的网络数据对象或
或服务。
? 6.实体(Entity):数据资源或来自服务资源的回应
的一种特殊表示方法,它可能被包围在一个请求
或响应信息中。一个实体包括实体头信息和实体
本身的内容。
淘宝-北京研发中心-UED-前端 16
- 19. 几个概念
? 12.网关(Gateway):一个作为其它服务器中间媒
介的服务器。与代理不同的是,网关接受请求就
好象对被请求的资源来说它就是源服务器。
? 13.通道(Tunnel):是作为两个连接中继的中介程
序。一旦激活,通道便被认为不属于HTTP通讯。
? 14.缓存(Cache):响应信息的局域存储。
淘宝-北京研发中心-UED-前端 19
- 20. 协议类型 端口
URL 查询参数
http://www.g.cn:80/s/search?q=淘宝UED&btnG=GCN+搜索
主机 路径和查询
为
空
大小写不敏感 即 不安全的字符和%HEXHEX相同
默
认
http://abc.com:80/~smith/home.html
htTP://ABC.com/%7Esmith/home.html
http://ABC.com:/%7esmith/home.html
其他:URL的长度限制到底是多少?参数如果编码?
淘宝-北京研发中心-UED-前端 20
- 21. 时间格式
Sunday, 06-Nov-94 08:49:37 GMT
Sun Nov 6 08:49:37 1994
Sun, 06 Nov 1994 08:49:37 GMT
淘宝-北京研发中心-UED-前端 21
- 23. HTTP-Message
(Request-Line | Status-Line) *(message-header CRLF) CRLF [ message-
body ]
(Request-Line | Status-
Line)
HTTP-Message *(Message-Header CRLF) CRLF
[ Message-
Body ]
淘宝-北京研发中心-UED-前端 23
- 24. Request-Line
Method SP Request-URI SP HTTP-Version CRLF
Method SP
Request-Line Request-URI SP
HTTP-Version CRLF
淘宝-北京研发中心-UED-前端 24
- 25. Status-Line
HTTP-Version SP Status-Code SP Reason-Phrase CRLF
HTTP-Version SP
Status-Line Status-Code SP
Reason-Phrase CRLF
淘宝-北京研发中心-UED-前端 25
- 26. Method
DELETE
TRACE GET
POST CONNECT
PUT
OPTIONS HEAD
淘宝-北京研发中心-UED-前端 26
- 27. Status-Code
204 202 客户端错误 404
201 206 403
200 417
203 205 101
400
信息 401 402
成功
100
301 重定向 服务器错误
503
300 305
302 304 500 501
504
303 307 502 505
306
淘宝-北京研发中心-UED-前端 27
- 28. 状态码举例
? 1xx:信息——仅在与HTTP服务器沟通时使用
? 100(“Continue”)
? 2xx:成功——成功收到、理解和接受动作
? 200(“OK”)、201(“Created”)、204(“No Content”)
? 3xx:重定向——为完成请求,必须进一步采取措施
? 301(“Moved Permanently”)、303(“See Other”)、304(“Not Modified”)、
307(“Temporary Redirect”)
? 4xx:客户端错误——请求包含错误的语法或不能完成
? 400(“Bad Request”)、401(“Unauthorized”)、403(“Forbidden”)、404(“Not
Found”)、405(“Method Not Allowed”)、406(“Not Acceptable”) 、409(“Conflict”)、
410(“Gone”)
? 5xx:服务器端错误——服务器不能完成明显合理的请求
? 500(“Internal Server Error”)、503(“Service Unavailable”)
淘宝-北京研发中心-UED-前端 28
- 29. Message-Header
Cache-Control, Connection, Date, Pragma, Trailer, Transfer-
通用
Encoding, Upgrade, Via, Warning
Accept, Accept-Charset, Accept-Encoding, Accept-
Language, Authorization, Expect, From, Host, If-Match, If-
请求 Modified-Since, If-None-Match, If-Range, If-Unmodified-
Since, Max-Forwards, Proxy-
Authorization, Range, Referer, TE, User-Agent
Accept-Ranges, Age, ETag, Location, Proxy-Authenticate, Retry-
响应
After, Server, Vary, WWW-Authenticate
Allow, Content-Encoding, Content-Language, Content-
实体 Length, Content-Location, Content-MD5, Content-Range, Content-
Type, Expires, Last-Modified
淘宝-北京研发中心-UED-前端 29
- 30. 惭别蝉蝉补驳别-贬别补诲别谤-其他
Cookie
X-Powered-By
Set-Cookie
X-Requested-With
“X-”开头
淘宝-北京研发中心-UED-前端 30
- 31. 重要的贬罢罢笔头…
Host Server Date
User-Agent Location Expires
Accept Content-Type Last-Modified
Accept-Charset Age
Accept-Encoding Content-Encoding ETag
Referer Cache-Control
淘宝-北京研发中心-UED-前端 31
- 33. 响应的Header举例
? Accept-Ranges:表明支持部分Get请求,客户端通过Head请求获取该
值,然后发送Range报头请求,获取资源部分表示。
? Content-Encoding:对应Accept-Encoding请求报头。
? Content-Language:实体主体采用的自然语言,对应Accept-
Language请求报头,可能多个值。
? Content-Length:给出实体主体大小,客户端可据此做读取准备,也可
通过Head请求来获知。
? Content-Location:把请求资源的规范URI告知客户端,但并不要求其
使用新URI。
? Content-MD5:实体主体MD5,可检测错误损坏。
淘宝-北京研发中心-UED-前端 33
- 34. 媒体类型
Content-Type 响应
Accept
请求 Accept-Charset
淘宝-北京研发中心-UED-前端 34
- 35. 内容编码
响应
Content-Encoding
gzip
x-gzip
请求 Accept-Encoding x-compress
deflate
compress
identity
淘宝-北京研发中心-UED-前端 35
- 36. 传输编码
Transfer-Encoding 响应
chunked
淘宝-北京研发中心-UED-前端 36
- 37. 传输范围
Accept-Ranges 响应
Content-Range
206 200
Range
请求
淘宝-北京研发中心-UED-前端 37
- 38. 缓存
减少请求:Expiration
性能
减少完成的请求:Validation
淘宝-北京研发中心-UED-前端 38
- 39. 缓存失效
Expires, Date, Age
年龄计算
减少请求:Expiration
更新周期计算
是否失效:年龄-更新周期
淘宝-北京研发中心-UED-前端 39
- 40. 缓存证实
弱证实:Last-Modified
If-Modified-Since, If-Unmodified-Since
减少完成的请求:Validation
强证实:Etag (1.0不支持)
If-Match, If-None-Match
淘宝-北京研发中心-UED-前端 40
- 41. 可缓存性
理论上:除了明确指出不可缓存的以外都可以被缓存
实际上:需要服务器指定失效和证实才能被缓存
状态码是:200, 203, 206, 300, 301, 410,除非明确的禁止
可缓存性: 支持Range, Content-Range => 206
Cacheability
其他状态码都禁止,除非明确允许
淘宝-北京研发中心-UED-前端 41
- 43. 缓存控制
对失效: s-maxage, max-age, min-fresh, max-stale
缓存控制: 对证实: only-if-cached, must-
Cache-Control revalidate, proxy-revalidate, no-transform
对可缓存性: public, private, no-cache, no-store
淘宝-北京研发中心-UED-前端 43
- 44. 缓存的其他话题
? 从缓存构造响应
? 缓存协商响应
? 共享和非共享缓存
? 历史和缓存的区别
淘宝-北京研发中心-UED-前端 44