图解Http
2018-06-21 10:39:43 1 举报
AI智能生成
图解http
作者其他创作
大纲/内容
了解Web及网络基础
HTTP的诞生
1990 HTTP/0.9
1996 HTTP/1.0
1997 HTTP/1.1
2013 HTTP/2.0
网络基础TCP/IP
网络分层
TCP/IP通信传输流
与HTTP关心密切的协议:IP、TCP和DNS
IP
IP网际协议位于网络层,作用是把各种数据包传送给对方
TCP
TCP位于传输层、提供可靠的字节流服务
DNS
TCP位于传输层、提供可靠的字节流服务
URL和URI
URI - Uniform Resource Identifier
URL - Uniform Resource Location
简单的HTTP协议
HTTP协议用于客户端和服务端之间的通信
客户端:请求访问文本或图像等资源
服务端:提供资源响应
通过请求和响应的交换达成通信
HTTP是不保存状态的协议
告知服务器意图的HTTP方法
GET:获取资源
POST:传输实体主体
PUT:传输文件
HEAD:获取报文首部
DELETE:删除文件
TRACE:追踪路径
CONNECT:要求用隧道协议连接代理
持久连接节省通信量
管线化:不用等待响应就可以直接发送下一个请求
使用Cookie的状态管理
HTTP报文内的HTTP信息
请求报文和响应报文的结构
请求报文(上)和响应报文(下)的实例
编码提升传输效率
报文主体和实体主体的差异
报文(message)
是HTTP通信的基本单位,由8位组字节流组成,通过HTTP通信传输
实体(entity)
作为请求或响应的有效载荷数据被传输,其内容由实体首部和实体主体组成
HTTP报文的主体用于传输请求或响应的实体主体
只有当传输中进行编码操作时,实体主体的内容发生变化,才导致它和报文主体产生差异
压缩传输的内容编码
内容编码后的实体由客户端接收并负责解码
常见的内容编码有以下几种
gzip(GUN zip)
compress(UNIX系统的标准压缩)
deflate(zlib)
identity(不进行编码)
分割发送的分块传输编码
在传输大容量数据时,通过把数据分割成多块,能够让浏览器逐步显示页面
发送多种数据的多部分对象集合
获取部分内容的范围请求
内容协商返回最合适的内容
返回结果的HTTP状态码
状态码告知从服务器端返回的请求结果
2XX成功
200 OK
204 No Content
206 Partial Content
表示客户端进行了范围请求
3XX重定向
301 Moved Permanently
永久性重定向。请求的资源已被分配了新的URI,以后应使用新的URI
302 Found
临时性重定向。请求的资源已被分配新的URI,希望用户本次能使用新的URI访问
303 See Other
请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源
304 Not Modified
在2的条件下,服务端允许请求访问资源,但为满足条件的情况
307 Temporary Redirect
和302相同
4XX客户端错误
400 Bad Request
请求报文中存在语法错误
401 Unauthorized
发送的请求需要有通过HTTP认证的认证信息
403 Forbidden
请求资源的访问被服务器拒绝
404 Not Found
服务器上没有请求的资源
5XX 服务器错误
500 Internal Server Error
服务端在执行请求时发生错误
503 Service Unavailable
服务器暂时处于超负载或正在进行停机服务
与HTTP协作的WEB服务器
用单台虚拟主机实现多个域名
用一台主机模拟多个虚拟主机
请求发送到服务器时,已经是以IP地址形式访问了
通信数据转发程序:代理、网关、隧道
代理
代理是一种有转发功能的应用程序
网关
网关是转发其他服务器通信数据的服务器
网关能使通信线路上的服务器提供非HTTP协议服务
隧道
隧道是在相隔甚远的客户端和服务器两者之间进行中转,并保持双方通信连接的应用程序
使用SSL等加密手段进行通信
目的是确保客户端和服务器进行安全通信
保存资源的缓存
确保Web安全的HTTPS
HTTP的缺点
通信使用明文,内容可能会被窃听
不严重通信放的身份,因为有可能遭遇伪装
无法证明报文的完整性,所以有可能已遭篡改
HTTPS
HTTP+加密+认证+完整性保护
确认访问用户身份的认证
BASIC认证(基本认证)
DIGEST认证(摘要认证)
SSL客户端认证
FormBase认证(基于表单认证)
第9章、基于HTTP的功能追加协议
消除HTTP瓶颈的SPDY
HTTP的瓶颈
一条连接只可发送一个请求
请求只能从客户端开始
请求/响应首部未经压缩就发送
发送冗长相同的首部
一些解决方案
ajax
Asynchronous JavaScript and XML
是一种有效利用JavaScript和DOM(Document Object Model,文档对象模型)的操作
达到局部Web页面替换加载的异步通信手段
通过JavaScript和服务器进行HTTP通信,可以从已加载完毕的Web页面上发起请求,只更新局部页面
利用Ajax实时地从服务器获取内容,有可能会导致大量请求产生
comet
一旦服务器端有内容更新,Comet不会让请求等待,而是直接给客户端返回响应
通过延迟应答,模拟实现服务端向客户端推送功能
为了保留响应,一次连接时间变长,会消耗更多的资源
SPDY
SPDY概述
SPDY没有完全改写HTTP协议
在应用层与运输层之间通过新加会话层的形式运作
SPDY规定通信中使用SSL
多路复用流
赋予请求优先级
压缩HTTP首部
推送功能
服务器提示功能
WebSocket
概述
Web浏览器与Web服务器之间全双工通信标准
一旦Web服务器与客户端之间建立起WebSocket协议的通信连接,之后所有的通信都依靠这个专业协议进行
发起方是客户端,一旦建立连接,无论服务器还是客户端,都可直接向对方发送报文
功能
推送
减少通信量
HTTP 2.0
压缩
多路复用
TSL义务化
协商
客户端拉拽/服务器推送
流量控制
WebSocket
第10章、构建HTTP的功能追加协议
HTML
Web页面几乎全由HTML构建
CSS
Cascading Style Sheets 层叠样式表
动态HTML
使用客户端脚本语言将静态的HTML内容变成动态的技术的总称
DOM是用以操作HTML文档和XML文档的API
0 条评论
下一页