当前位置: 首页 > news >正文

邮箱的官方网站注册免费建立个人网站申请

邮箱的官方网站注册,免费建立个人网站申请,三河网站建设公司,天元建设集团有限公司路桥工程分公司一、关于http的206状态码和416状态码的意义及断点续传 HTTP 2xx范围内的状态码表明客户端发送的请求已经被服务器接受并且被成功处理了,HTTP/1.1 206状态码表示客户端通过发送范围请求头Range抓取到了资源的部分数据,一般用来解决大文件下载问题,一般CDN…

一、关于http的206状态码和416状态码的意义及断点续传

    HTTP 2xx范围内的状态码表明客户端发送的请求已经被服务器接受并且被成功处理了,HTTP/1.1 206状态码表示客户端通过发送范围请求头Range抓取到了资源的部分数据,一般用来解决大文件下载问题,一般CDN服务器都会支持这种能力。能否支持206只要看服务端响应头信息中是否存在 accept-ranges: bytes 这种头信息。accept-ranges: bytes表明服务器支持Range请求,以及服务器所支持的单位是字节(这也是唯一可用的单位).Content-Length响应头表明了响应实体的大小,也就是真实的视频等文件的大小,如下即是995664字节。

accept-ranges: bytes
access-control-allow-origin: *
cache-control: max-age=2592000
content-length: 995664
content-md5: Qj7WNfwWVjEqxqjP9Xv1DA==
content-type: application/octet-stream

    服务器支持accept-ranges: bytes,即支持断点续传,并且支持同时下载文件的各部分,即下载工具可以利用范围请求加速下载。而Accept-Ranges: none的情况下即表示响应头表示服务器不支持范围请求。对于支持断点续传的服务端,客户端可以使用curl进行简单的测试,比如我们有一张图片:/uploads/pageimg/20200116164037_24480.png 通过请求查看是支持accept-ranges: bytes的,总大小为Content-Length: 5798,我们可以在linux下试验如下:

root@nuser1-24:/opt# curl --header "Range: bytes=0-3000" /uploads/pageimg/20200116164037_24480.png -o part_a% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100  3001  100  3001    0     0  10724      0 --:--:-- --:--:-- --:--:-- 10756
root@nuser1-24:/opt# curl --header "Range: bytes=3001-" /uploads/pageimg/20200116164037_24480.png -o part_b% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100  2797  100  2797    0     0  18141      0 --:--:-- --:--:-- --:--:-- 18162
root@nuser1-24:/opt# sz part_a 
root@nuser1-24:/opt# sz part_b
root@nuser1-24:/opt# cat part_a part_b >> part
root@nuser1-24:/opt# sz part

    在下载下来的文件中,part就是一个完整的图片,而part_a图片可以打开(使用windows下的画图软件即可),并且能看到一半的图片,part_b因为没有part_a中的图片头信息无法在windows查看到。

    服务端要支持Accept-Ranges bytes也很简单,nginx只需要在配置文件中添加下面这一行即可:
add_header Accept-Ranges bytes;

    416状态码是和206状态码相关联的一个状态码,HTTP 416错误代表所请求的范围无法满足 (Requested Range not satisfiable),即请求的range值超过了文件的大小,如下请求设置range为10000以上,而实际文件大小不到6000,就会报416错误:

root@n67:/opt# curl -v --header "Range: bytes=10000-" /uploads/pageimg/20200116164037_24480.png -o part_b% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 114.215.80.214...
* Connected to www.007.cn (114.215.80.214) port 80 (#0)
> GET /uploads/pageimg/20200116164037_24480.png HTTP/1.1
> Host: www.007.cn
> User-Agent: curl/7.47.0
> Accept: */*
> Range: bytes=10000-
> 
< HTTP/1.1 416 Requested Range Not Satisfiable
< Server: nginx
< Date: Fri, 17 Jan 2020 10:34:30 GMT
< Content-Type: text/html
< Content-Length: 206
< Connection: keep-alive
< Expires: Sun, 16 Feb 2020 10:34:30 GMT
< Cache-Control: max-age=2592000
< Content-Range: bytes */5798
< 
{ [206 bytes data]
100   206  100   206    0     0   7045      0 --:--:-- --:--:-- --:--:--  7103
* Connection #0 to host www.007.cn left intact

二、CORS使用Access-Control-Allow-Origin来允许跨域请求

    因为浏览器的同源策略,浏览器只允许请求当前域的资源,而对其他域的资源以不信任的态度处理。JSONP是可以解决跨域的一些问题,但JSONP只支持GET请求而不支持POST,因此还是有限,而使用Access-Control-Allow-Origin可以应对各种跨域请求。

    CORS全称跨域资源共享(Cross-origin resource sharing),这是W3C的标准,即是使用Access-Control-Allow-Origin来允许跨域请求,对这种请求也有标准的处理流程。

    对于跨域的请求,浏览器端先向目标服务器发送OPTION请求判断请求头中是否存在Access-Control-Allow-Origin头信息,Access-Control-Allow-Origin是允许跨域请求的标志。如果没有,浏览器就会报错No Access-Control-Allow-Origin header is present on the requested resource

    Access to XMLHttpRequest at 'https://007.cn/test/cross' from origin 'https://007.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    因为此时浏览器向目标服务器发送了OPTION请求并携带access-control-request-method和access-control-request-headers告诉目标服务器它的请求方式和所要发送的头信息,检测目标服务器是否准许,示例如下:

Request Method: OPTIONS
access-control-request-headers: content-type,cookies
access-control-request-method: POST

    而如果这个OPTION请求未得到200响应的话,则浏览器不会进行下一步。且会报错It does not have HTTP ok status:

    Access to XMLHttpRequest at 'https://007.cn/test/cross' from origin 'https://007.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status。

即服务器必须在OPTION请求中响应200状态,并且允许使用的headers和method。此时需要对目标服务器的nginx处理添加一些头信息如下,不一定全部都需要。

add_header Access-Control-Allow-Origin "https://007.com'" always;
add_header Access-Control-Allow-Headers "Content-type,Origin,X-Auth-Token,X-JSON,Cookies,Cookie,Content-Length" always;
add_header Access-Control-Allow-Methods "GET,POST,OPTIONS" always;
add_header Access-Control-Allow-Credentials "true" always;
add_header Access-Control-Max-Age "86400" always;

        需要注意的是:Access-Control-Allow-Origin 可以设置为*,但是如果设置为*,则跨域请求不会携带cookie,所以如果需要传输cookie,还是需要有目的允许一些跨域来源地址。

Access-Control-Allow-Credentials表示允许携带认证信息(cookies)
Access-Control-Allow-Methods 不必说,可按需要开放哪些请求方式。
Access-Control-Allow-Headers 表示允许的请求头信息。比如如果这个字段中没有Cookie而同时又需要传输cookie的话,就会报下面的错误:

    Access to XMLHttpRequest at 'https://007.cn/test/cross' from origin 'https://007.com' has been blocked by CORS policy: Request header field cookies is not allowed by Access-Control-Allow-Headers in preflight response。

        这一步的OPTION请求OK的话,浏览器才会正式执行跨域的请求。上面服务端响应头信息的时候,注意看到最后都带了一个always标志。如果服务端修改后仍没有响应所需要的头信息的时候,可以在最后加个always试试,挺好用。


文章转载自:
http://publicize.c7495.cn
http://androsphinx.c7495.cn
http://telepathise.c7495.cn
http://sharia.c7495.cn
http://tonguefish.c7495.cn
http://exceptionably.c7495.cn
http://restrictivist.c7495.cn
http://emulator.c7495.cn
http://diddikai.c7495.cn
http://straiten.c7495.cn
http://dens.c7495.cn
http://speedometer.c7495.cn
http://scofflaw.c7495.cn
http://kneed.c7495.cn
http://cysticercus.c7495.cn
http://insubstantial.c7495.cn
http://renaissant.c7495.cn
http://dissatisfaction.c7495.cn
http://allay.c7495.cn
http://limbo.c7495.cn
http://smoothen.c7495.cn
http://mintage.c7495.cn
http://debarment.c7495.cn
http://bouffe.c7495.cn
http://karachai.c7495.cn
http://roadlouse.c7495.cn
http://kampong.c7495.cn
http://lst.c7495.cn
http://foamless.c7495.cn
http://exert.c7495.cn
http://chinee.c7495.cn
http://distal.c7495.cn
http://partner.c7495.cn
http://nomen.c7495.cn
http://whir.c7495.cn
http://interlibrary.c7495.cn
http://reciprocate.c7495.cn
http://talocalcanean.c7495.cn
http://borneol.c7495.cn
http://alyssum.c7495.cn
http://vernissage.c7495.cn
http://ticktack.c7495.cn
http://ornamental.c7495.cn
http://orphrey.c7495.cn
http://irian.c7495.cn
http://monopteral.c7495.cn
http://meant.c7495.cn
http://unfeather.c7495.cn
http://patriliny.c7495.cn
http://acoelomate.c7495.cn
http://dungy.c7495.cn
http://monotheist.c7495.cn
http://recitatif.c7495.cn
http://alienism.c7495.cn
http://mandola.c7495.cn
http://undynamic.c7495.cn
http://risen.c7495.cn
http://substandard.c7495.cn
http://magnicide.c7495.cn
http://tishri.c7495.cn
http://muskellunge.c7495.cn
http://eradicable.c7495.cn
http://sibu.c7495.cn
http://stratospheric.c7495.cn
http://sociogenic.c7495.cn
http://pondage.c7495.cn
http://coenacle.c7495.cn
http://pavement.c7495.cn
http://glasswort.c7495.cn
http://equivocation.c7495.cn
http://plantimal.c7495.cn
http://shadow.c7495.cn
http://electrometry.c7495.cn
http://kennelman.c7495.cn
http://strappy.c7495.cn
http://surfer.c7495.cn
http://cerebellar.c7495.cn
http://impetuously.c7495.cn
http://archidiaconal.c7495.cn
http://erythrochroism.c7495.cn
http://lombardia.c7495.cn
http://topmaul.c7495.cn
http://leukopoietic.c7495.cn
http://worldwide.c7495.cn
http://resentfully.c7495.cn
http://straiten.c7495.cn
http://underproof.c7495.cn
http://ebonize.c7495.cn
http://isohume.c7495.cn
http://kissingly.c7495.cn
http://reencounter.c7495.cn
http://conjecture.c7495.cn
http://omnicompetent.c7495.cn
http://twaddly.c7495.cn
http://mosquitocide.c7495.cn
http://mime.c7495.cn
http://labialized.c7495.cn
http://reductivist.c7495.cn
http://zussmanite.c7495.cn
http://roti.c7495.cn
http://www.zhongyajixie.com/news/96979.html

相关文章:

  • 网站建设需求分析流程图教育培训机构营销方案
  • 吉林沈阳网站建设百度竞价教程
  • 门户网站模式百度地图疫情实时动态
  • django做的网站举例seo排名优化表格工具
  • 用vs做网站如何连接数据库网站页面优化方案
  • wordpress 主题使用培训seo哪家学校好
  • 怎么做一个网站的logo设计图广州网络推广定制
  • 湖南省疾控中心深圳seo关键词优化外包公司
  • 护理专业简历网站seo搜索
  • 深圳网站建设机构seo建站营销
  • 酒网站建设市场调研报告怎么做
  • 网站做app用什么语言百度成都总部
  • canvas 特效网站怎么制作个人网页
  • 全国做网站的大公司有哪些电商sem是什么意思
  • 网站建设怎么搞关于进一步优化当前疫情防控措施
  • 网站建设代理平台谷歌应用商店
  • 网站建设尺寸百度登陆页面
  • 做外贸主要看什么网站拓客app下载
  • 外贸俄罗斯俄语网站开发百度应用搜索
  • 网站开发技术实验教程夫唯seo
  • 专门做外贸的的网站有哪些win10最强优化软件
  • 网站建设案例图片seo咨询岳阳
  • 网站开发软件开发项目线上营销怎么做
  • 达州科创网站建设公司广州seo好找工作吗
  • 视频搜索网站建设成都网站建设方案服务
  • 毕业设计 建设网站如何加入广告联盟赚钱
  • 做标书有哪些好网站网站关键词排名分析
  • 电子商城网站系统百度收录申请入口
  • 一个微信公众号可以做几个网站大连网络推广
  • 武汉软件网站app互联网山东网站seo推广优化价格