初步了解HTTP协议

简介:
http,超文本传输协议(Hyper Text Transfer Protocol),用户服务器和本地浏览器之间传送协议,是基于TCP/IP通信协议来传输数据的(HTML、图片、响应结果等)
【TCP/IP,Transmission Control Protocol /Internet Protocol  传输控制协议/因特网互联协议。】
http是一个应用层的面向对象协议,由于其简洁、快速的方式,适用于分布式超媒体信息系统。

主要特点:
1、简单快速:客户端发送请求时,只发送请求方法和路径,协议规模小,通信速度块;
2、灵活:允许传输任意类型的数据对象,正常传输的类型由Content-Type标记;
3、无连接:限制每次连接只处理一个请求,服务器处理完客户端请求,返回响应,并收到客户端的应答后,就断开此次连接;
4、无状态:对于事务处理没有记忆能力。因为缺少状态,如果后续的处理需要前面的信息,则它必须重传,这样会导致每次连接传送的数据量增大。不过,因为没有状态,服务器不需要之前的信息时,服务器应答的速度就较快。
5、HTTP可以用户B/S、C/S模式;

HTTP之URL
HTTP使用URI(Uniform Resource Identifiers)统一资源标识来传输数据和建立连接。其中URL (Uniform Resource Locator)统一资源定位符,是一种特殊的URI,一个URL包含如下部分:
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
1、协议部分:http://
2、域名:www.aspxfans.com
3、端口:8080,端口的分配时需要注意,某些端口已经被特定的服务所占用,详细请参考该文章介绍【https://blog.csdn.net/qq_37788558/article/details/71054874】
4、虚拟目录:从域名后第一个‘/’到最后一个‘/’之间,为虚拟目录
5、文件名:从最后一个‘/’到‘?’之间
6、变量名:第一个而变量名从?开始,变量名之间使用&连接,数字和字符不改变,特殊符号改变,显示为%xx,其中,xx为该符号的ASCII码对应的16进制数。
7、锚部分:从‘#’开始到最后,都是锚部分
在一个URL中,协议+域名为必须包含部分。

URI - URL  - URN
1、URI,统一资源标识符,用来唯一标识一个资源:
    由访问资源的命名机制 + 存放资源的主机名 + 资源自身的名称,由路径表示
2、URL 统一资源定位器,具体URI
     由协议 + 存放由该资源的主机IP地址 + 主机资源具体地址,如目录和文件名等;
3、URN (Uniform resource name), 统一资源命名,通过名字来标识资源,如:mailto:java-net@java.sun.com
URI时一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识方式。URL和URN都是一种URLI,

HTTP之 请求消息 Request
客户端发出的http请求,一般包含:请求行(qreuest line)、 请求头部(header)、空行和数据组成。









如下GET 请求 ,使用Charles抓取的request:
GET /234sdffsd/jpg HTTP/1.1
Host:img.mukewang.com
User-Agent:Mozilla/5.0(Windows NT 10.0 WOW64) ...
Accept:image/webp, image/*, */*; q=0.8
Referer:http://www.imooc.com/
Acept-Emcoding:gzip, deflate
Accept-Language:zh-CN, zh; q=0.8

解析:
请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本
请求头部:HOST指出请求的目的地, User-Agent,出服务器和客户端脚本都能访问它,是浏览器类型检测的基础,由你的浏览器客户端来定,在每一个请求中自动发送
空行:请求头部后面的空行是必须的,即使之后的请求数据为空,空行也是必须的
数据:请求数据也叫主体,可以添加任意的其他数据

如下是POST请求的示例:
POST / HTTP1.1
HOST:www.wrox.com
User-Agent:Mozilla/5.0(Windows NT 10.0 WOW64) ...
Content-Type:application/x-www-form-urlencoded
Content-Lenght:40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley
第一部分:请求行,指明请求类型post,,协议版本http1.1
第二部分:请求头部,2-6行
第三部分:空行
第四部分:请求数据

HTTP之 响应消息 Response
响应消息也由4部分构成:分别为状态行,消息报头, 空行和响应正文
HTTP/1.1 200 okDate: Fri, 22 May 2009 06:07:08 GMTContent-Type: text/html; charset=UTF-8
<html> <head></head> <body> <!-- body content --> </body></html>
第一行:状态行,由HTTP协议版本号,状态码,状态消息三部分组成
第二行:消息报头,用来说明服务器的一些附加信息(2-3行)
第三部分:空行,消息报头后面的空行是必须的
第四部分:响应正文,服务器返回给客户端的文本消息。
HTTP之 状态码:
1xx:指示信息--表示已经接收,继续处理
2xx:   成功--表示已被成功接收,理解、接受
3xx: 重定向--要完成请求必须进一步的操作
4xx: 客户端错误--请求语法错误或鉴权不过
5xx: 服务器错误--服务器启动失败,或内部错误
200 ok                  //客户端请求成功
301 redirect            //永久性跳转
302 redirect            //暂时性跳转
400 Bad Request         //客户端请求语法错误,不被服务器理解
401 Ubauthorized        //请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用
404 Not Found           //请求资源不存在,如输入了错误的资源
500 Internal Server Error //服务器内部错误
503 Server Unavaliable    //服务器当前不能处理请求,稍后重试
工作原理:
HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法,URL,协议版本,请求头部和请求数据。服务器以一个状态行作为响应,内容包含协议版本,成功或错误码,服务器信息,响应头部和响应数据。
1、客户端连接到WEB服务器:
一个HTTP客户端,通常是web浏览器,建立一个TCP套接字连接
2、发送HTTP请求:
通过TCP套接字,客户端向服务端发送文本请求报文
3、服务器端接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源副本写到TCP套接字,由客户端读取。
4、释放连接TCP
若Connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接; 如果模式为keep-alive,则该连接保持一段时间,在该时间内可以继续接受请求(超过session,释放连接)。
5、客户端浏览器解析服务器端返回内容:
客户端浏览器首先解析状态行,查看表明请求是否成功的状态码, 然后解析每一个响应头,响应头告知一下为若干字的HTML文档和文档字符集。客户端读取响应数据并解析HTML,在浏览器窗口显示。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 目标检测的定义 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像中目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。输出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框中是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从输入图像中提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框输入到另一个 CNN 中进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选中值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框中继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测中Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值