http

http性能:
ip像公路,tcp是卡车,http是货物
tcp对http影像(延迟和带宽), 主要包括 dns解析  连接  请求 处理 响应 关闭; 其它,三次握手  延迟确认  拥塞控制  延时发送 端口耗尽
http自身缺陷:内容不加密 身份不验证 完整性不保证
web应用设计: html/css-js-tree-div-dispaly
浏览器趋势: dns预解析 tcp预连接  预取和页面预渲染


报文组成3,连接过程3,加密4, 状态码5, robot3,cookie3,encode3,dns3,日志2,代理作用2,缓存与新鲜度(客户端+服务端,命中和设置)检测,


报文组成:起始行(请求 响应 方法 状态码 原因短语 版本号)、首部(请求 响应 通用  实体 扩展首部)和主体
报文是箱子,实体是货物
基本首部:
Content-type 对象类型
Content-Length  实体大小
Content-Language 语言
Content-Encoding 数据变化,比如压缩
Content-Location 备用位置,获取对象
Content-Range 说明是整体的截取部分
Content-MD5 实体主体内容的校验和
Last-Modified 传输内容在服务器上创建或最后修改的日期时间
Expires 失效的日期时间
Allow 该资源允许的各种请求方法
ETag  唯一验证码
Cache-control 如何缓存文档

content通常是响应
content换成accept通常是请求


连接过程:解析ip,发送请求和响应报文
http时延:DNS查询 连接(串行 并行 持久 管道) 请求 处理 响应 关闭(全关 半关 幂等)
web服务器:建立连接,接收请求,处理请求,访问资源,构建响应

代理既是服务器,又是客户端
作用:过滤+访问控制+防火墙+web缓存+反向代理+内容路由+转码 P139
部署:出口代理--访问控制 入口代理--用户缓存  反向代理 网络交换代理

robot(user-agent disallow allow  disallow),url规范(失效、过长,用户隐私),避免环路
HTML的robot-control标签
<META NAME="ROBOTS" CONTENT="NOINDEX">
<META NAME="ROBOTS" CONTENT="NOFOLLOW”>
其他:DESCRIPTION KEYWORDS REVISIT-AFTER
搜索步骤:输入->url请求->服务器处理并转发给搜索网关应用->结果列表返回给web服务器->web服务器将这些结果转换成HTML页面提供给用户

401授权请求
摘要认证:不通过明文发送密码,如MD5
安全HTTP:https:网络接口->ip->tcp->ssl->http
数字签名:签名是加了密的校验和,一般非对称加密
数字证书:对象的名称 过期时间 证书发布者 来自证书发布者的数字签名
证书包括:序列号+过期时间+站点组织名+DNS主机名+公开密钥+证书颁发者名称+证书颁发者签名

http状态码
1xx(临时响应)
2xx (成功)
3xx (重定向)
表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
代码 说明
300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
4xx(请求错误)
这些状态代码表示请求可能出错,妨碍了服务器的处理。
400 (错误请求) 服务器不理解请求的语法。
401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 (禁止) 服务器拒绝请求。
404 (未找到) 服务器找不到请求的网页。
5xx(服务器错误)
这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。


URL解析:自动扩展和DNS解析
CDN——内容分发网络的反向代理缓存,按需驱动,保留用户访问的热点信息,而且原始服务器与反向代理之间有约定关系,
HTTP重定向--该内容的URL会解析到主服务器的IP地址,然后发送重定向到服务制服务器
DNS重定向--该内容的URL会解析到4个IP地址,DNS服务器可以选择发送给客户端飞IP地址
DNS重定向:
1、DNS轮转
2、多个地址及轮转地址的循环
3、平衡负载的地址轮转

日志内容:
--HTTP方法;
--客户端和服务器的HTTP版本;
--所请求资源的URL;
--响应的HTTP状态码;
--请求和响应报文的尺寸
--事务开始的时间戳
--Refer首部和User-Agent首部的值
举例:
--HTTP方法和URL说明了请求试图做些什么
--URL记录了页面受欢迎程度
--版本字符串给出了与客户端unhealthy服务器有关的一些提示,如客户端与服务器之间出现一些非预期的交互,比如请求失败率高的花,那版本信息指向的可能是一个无法与服务器进行交互的新版浏览器
--HTTP状体码,说明执行情况,是否成功执行,请求认证是否失败,资源是否找到
请求/响应的时间大小和时间戳主要用于记账,记录流入、流出或流经应用程序的字节有多少,还可以用时间戳将问题与请求关联

cookie分类:会话cookie+持久cookie
不同站点使用不同cookie:
set-cookie: user='mary17' ;domain="airtravelbargians.com"
set-cookie:pref=compact;domain="airtravelbargains.com";path=/autos/
如果访问http://www.airtravelbargains.com/autos/cheapo/index.html
会得到两个cookie:Cookie:user='mary17'  Cookie:pref=compact
如果访问:http://www.airtravelbargains.com/special.html
只会得到一个cookie:Cookie:user='mary17’
服务器反复重定向,然后根据url发送不同的cookie,即使用户禁用cookie,也可以对用户信息进行识别

cookie与缓存
--如果文档不可缓存,显示的标出来,Cache-Control:no-cache:"Set-Cookie"
--缓存Set-Cookie首部,如果向多个用户发送相同set-cookie首部,会破坏用户定位,
--如果缓存前删除cookie首部,也会引发问题,因为由缓存提供服务的客户端不会有cookie,因此强制缓存与原始服务器重新验证每条请求,并将返回的所有set-cookie首部都合并到客户端响应中去,可以改善:
Cache-Control:must-revalidate,max-age=0
--小心处理cookie首部,会有隐私信息,可将过期时间设置为0,强制验证

编码分类:内容编码—>分块编码—>分块编码
结合:内容+分块 ==>先使用内容编码压缩HTML文件,再使用传输编码分块发送,接收方重构主体的过程和发送方相反


缓存处理步骤:接收-解析-查询-新鲜度检测(新鲜度+范围请求+差异编码)-创建响应-发送-日志

一、新鲜度检测:缓存+条件+命中

1、文档过期:Expire首部(起始时间) +Cache-control首部 (需要时间)
控制缓存:
Cache-Control:no-store|no-cache|must-revalidate|max-age|Expires
Cache-Control:max-stale/min-fresh/max-age/no-cache/no-store/only-if-cached P194
通过HTTP-EQUIV控制html缓存
<HEAD>
  <META HTTP-EQUIV="Cache-control" CONTENT="no-cache">
</HEAD>

2、条件验证:If-(Un)Modified-Since  If-(None-)Match
新鲜度检测和缓存:如果内容没有变化,则返回304
用条件方法进行再验证:
If-Modified-Since:<date> 有变化200 没变化304  //首部 P188
首部: If-Modified-Since用来验证再命中,再验证命中/未命中/对象被删除(404)
If-None-Match:<tags> v2.6 304 命中   //实体标签

3、命中率测量:Meter首部,缓存获取响应后,回复给服务器命中次数,然后服务器304转发内容P517
客户端来区分是缓存命中还是原始服务器命中,使用Date首部,也可以通过Age首部来验证

二、范围请求:
Content-Type:multipart/byteranges
Range:bytes=20224-222222
Accept-ranges:**bytes

三、差异编码:
ETag
If-None-Match
A-IM
IM
Delta-Base

小结:
1、服务器集群和分布式代理缓存或反向代理服务器分散了网络流量,可以避免拥塞。
2、分发内容使之更靠近终端用户,缩短传输时间
3、传输方式:分块传输也加快传输速度
4、内容编码--压缩,也可以加快传输


http:
缓存更新策略:FIFO LFU LRU
不缓存或加密或不存在etag或last-modifeid则不缓存

新鲜度:完整过期时间 使用过缓存副本且足够新鲜,最后更新时间在上次使用过期之前,副本直接送出,太旧发出校验请求,是否继续使用缓存

避免post,不会被缓存

是否缓存->是否新鲜->是否再验证->返回数据
expires—通用
cache-control—通用+请求 max-age s-maxage public no-cache no-store must-revalidate  proxy-prevalidate  last-modify第一次请求   if-modified-since第二次请求 true 304

etag--响应 响应时给出,同if-none-match验证,false 304 true200

header(‘Cache-Control:no-cache,must-revalidate’);
header(‘Pragma:no-cache’)
header(‘Cache-control:max-age=86400,must-revalidate’)
header(‘Last-Modified:’.gmdate(‘D,d M Y H:i:s’).’GMT’)
header(‘Expires:’.gmdate(‘D d M Y H:i:s’,time()+86400’).’GMT')


状态码:http://tool.oschina.net/commons?type=5
首部:http://www.cnblogs.com/kissdodog/archive/2013/04/01/2993228.html
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值