HTTP协议笔记

HTTP协议是基于TCP协议的上层应用协议
特点1无连接:每次连接只处理一个请求,处理完即断开连接
特点2无状态:每次连接需要的信息都要重传

RESTful:一种流行的互联网软件设计架构 含义是资源表现层状态转化,包括三部分
1.定义直观简短的资源地址URI (应当是名词,动作放到参数里)
2.定义传输的资源:Web服务接受与返回的互联网媒体类型,如JSON,XML等
3.对资源的操作方法:GET获取资源 POST/PUT更新资源 DELETE删除资源

HTTP有两种消息,请求消息响应消息,均包括三部分,其中首行和头部 基于ASCII编码,正文通常约定UTF-8

请求首行:GET /simple.html HTTP/1.1 方法,路径,版本
响应首行:HTTP/1.1 200 OK 版本号,状态码,状态文本

常用HTTP方法:
先解释一下幂等性:一次请求与多次请求具有相同的副作用
GET请求只有Header,没有Body,响应对应URI的资源表述,
GET不改变状态,幂等,可缓存,有长度限制,不应在处理敏感数据时使用
POST会改变状态,不具备幂等性(比如重复新建会产生多个新资源),没有缓存
DELETE会改变状态,有幂等性(重复删除应当把403响应修正为200)
HEAD相当于返回没有Body的GET响应
PUT相当于有幂等性的POST(重复新建只返回一个新资源)

URI路径,前面用/组成目录路径,?后跟查询字符串,查询字符串由多个键值对组成,用=组成键值对,用&连接多个键值对
/path/res?key1&key2=&key3=v3 定义了key1,key2为空字符串,key3值为v3

关于URL编码
网址采用UTF-8编码;查询字符串采用操作系统编码;在已有网页中GET和POST采用网页规定的编码;Ajax采用浏览器规定编码

通常在提交前先对URL编码,避免操作系统、网页、浏览器的编码差异
转码:&:%26 = :%3D % :%25

常用HTTP消息头
Accept及Accept-xx,指定可接受的内容类型、编码集、语言等等
Cookie 用于辨认身份的会话缓存 Set-Cookie 设置Cookie
Expires 一个GMT时间,超过此时间认为缓存失效(受客户端时间正确性影响)
ETag 告诉浏览器该资源的唯一标识符(生成规则由服务器指定)
If-None-Match 将同一资源响应的ETag值发给服务器
Last-Modified 告诉浏览器最后更新的时间
If-Modified-Since 将同一资源响应的Last-Modified值发给服务器
Cache-Control 缓存机制
public共享缓存,private对应不同用户有不同缓存
no-cache 不校验缓存强制请求服务器数据
no-store 不保存缓存
max-age=[秒] 对比缓存的时间,超过规定的则认为缓存失效 max-age=0 不保存缓存
only-if-cached 只想要缓存,不发起请求,并且会忽视max-age
max-stale=[秒] 对比缓存的时间,超过规定的则认为缓存失效

如果Cache-Control规定no-cache则直接请求服务器并且不再校验ETag、Last-Modified和Expires
如果Cache-Control通过only-if-cahced&max-stale、max-age等规则认定缓存有效将不会发起请求而直接使用缓存
否则发起请求校验ETag,如果匹配再校验 Last-Modified,如果匹配则返回 304告知浏览器使用缓存
前三项都没设置才会校验Expires

常见状态码:
2xx成功:200成功,
3xx重定向:301已转至新URL 304已转至缓存
4xx客户端错误:400请求格式错误 403禁止访问(权限错误) 404未找到
5xx服务器错误:500服务器未知错误 502从上游服务器获得无效响应 503服务器过载/当机 504网关超时

参考链接:
HTTP必知必会:http://www.cnblogs.com/starstone/p/4890409.html
理解RESTful架构 : http://www.ruanyifeng.com/blog/2011/09/restful
理解HTTP幂等性: http://www.cnblogs.com/weidagang2046/archive/2011/06/04/idempotence.html
HTTP方法详解:http://blog.lucode.net/protocol/http-method-tutorial.html
Web浏览器的缓存机制 :http://www.alloyteam.com/2012/03/web-cache-2-browser-cache/#prettyPhoto
HTTP 状态消息大全: http://www.w3school.com.cn/tags/html_ref_httpmessages.asp

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值