zoukankan      html  css  js  c++  java
  • HTTP Header 详解

    PHP header 的几种用法

    PHP header 的几种用法,你知道几种?
    1. 跳转页面

    header('Location:'.$url);  //Location和":"之间无空格。

    2. 声明content-type

    header('content-type:text/html;charset=utf-8');

    3. 返回response状态码

    header('HTTP/1.1 404 Not Found');

    4. 在某个时间后执行跳转

    header('Refresh: 10; url=http://www.baidu.com/');  //10s后跳转。

    5. 控制浏览器缓存

    1. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    2. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
    3. header("Cache-Control: no-cache, must-revalidate");
    4. header("Pragma: no-cache");

    6. 执行http验证

    1. header('HTTP/1.1 401 Unauthorized');
    2. header('WWW-Authenticate: Basic realm="Top Secret"');

    7. 执行下载操作

    1. header('Content-Type: application/octet-stream'); //设置内容类型
    2. header('Content-Disposition: attachment; filename="example.zip"'); //设置MIME用户作为附件
    3. header('Content-Transfer-Encoding: binary'); //设置传输方式
    4. header('Content-Length: '.filesize('example.zip')); //设置内容长度

    ----------------------------------------------------------------------------------------------------------------------------

    http  header注入  :  https://blog.csdn.net/weixin_44720762/article/details/89291602

    参考:http://www.cnblogs.com/Joans/p/3956490.html

    网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。

    其作用根据不同的重新浏览方式分为以下几种情况:

    (1) 打开新窗口

    值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。
    而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如:
    Cache-control: max-age=5(表示当访问此网页后的5秒内再次访问不会去服务器)

    (2) 在地址栏回车

    值为private或must-revalidate则只有第一次访问时会访问服务器,以后就不再访问。
    值为no-cache,那么每次都会访问。
    值为max-age,则在过期之前不会重复访问。

    (3) 按后退按扭

    值为private、must-revalidate、max-age,则不会重访问,
    值为no-cache,则每次都重复访问

    (4) 按刷新按扭

    无论为何值,都会重复访问

    Cache-control值为“no-cache”时,访问此页面不会在Internet临时文章夹留下页面备份。

    另外,通过指定“Expires”值也会影响到缓存。例如,指定Expires值为一个早已过去的时间,那么访问此网时若重复在地址栏按回车,那么每次都会重复访问: Expires: Fri, 31 Dec 1999 16:00:00 GMT

    比如:禁止页面在IE中缓存

    http响应消息头部设置:

    CacheControl = no-cache
    Pragma=no-cache
    Expires = -1

    Expires是个好东东,如果服务器上的网页经常变化,就把它设置为-1,表示立即过期。如果一个网页每天凌晨1点更新,可以把Expires设置为第二天的凌晨1点。

    当HTTP1.1服务器指定CacheControl = no-cache时,浏览器就不会缓存该网页。

    旧式 HTTP 1.0 服务器不能使用 Cache-Control 标题。
    所以为了向后兼容 HTTP 1.0 服务器,IE使用Pragma:no-cache 标题对 HTTP 提供特殊支持。
    如果客户端通过安全连接 (https://)与服务器通讯,且服务器在响应中返回 Pragma:no-cache 标题,
    则 Internet Explorer不会缓存此响应。注意:Pragma:no-cache 仅当在安全连接中使用时才防止缓存,如果在非安全页中使用,处理方式与 Expires:-1相同,该页将被缓存,但被标记为立即过期

    header常用指令
    header分为三部分:
    第一部分为http协议的版本(HTTP-Version);
    第二部分为状态代码(Status);
    第三部分为原因短语(Reason-Phrase)。

    // fix 404 pages: 用这个header指令来解决URL重写产生的404 header
    header(’HTTP/1.1 200 OK’);

    // set 404 header: 页面没找到
    header(’HTTP/1.1 404 Not Found’);

    //页面被永久删除,可以告诉搜索引擎更新它们的urls
    // set Moved Permanently header (good for redrictions)
    // use with location header
    header(’HTTP/1.1 301 Moved Permanently’);

    // 访问受限
    header(’HTTP/1.1 403 Forbidden’);

    // 服务器错误
    header(’HTTP/1.1 500 Internal Server Error’);

    // 重定向到一个新的位置
    // redirect to a new location:
    header(’Location: http://www.example.org/‘);

    延迟一段时间后重定向
    // redrict with delay:
    header(’Refresh: 10; url=http://www.example.org/’);
    print ‘You will be redirected in 10 seconds’;

    // 覆盖 X-Powered-By value
    // override X-Powered-By: PHP:
    header(’X-Powered-By: PHP/4.4.0′);
    header(’X-Powered-By: Brain/0.6b’);

    // 内容语言 (en = English)
    // content language (en = English)
    header(’Content-language: en’);

    //最后修改时间(在缓存的时候可以用到)
    // last modified (good for caching)
    $time = time() – 60; // or filemtime($fn), etc
    header(’Last-Modified: ‘.gmdate(’D, d M Y H:i:s’, $time).’ GMT’);

    // 告诉浏览器要获取的内容还没有更新
    // header for telling the browser that the content
    // did not get changed
    header(’HTTP/1.1 304 Not Modified’);

    // 设置内容的长度 (缓存的时候可以用到):
    // set content length (good for caching):
    header(’Content-Length: 1234′);

    // 用来下载文件:
    // Headers for an download:
    header(’Content-Type: application/octet-stream’);
    header(’Content-Dis; filename=”example.zip”‘);
    header(’Content-Transfer-Encoding: binary’);

    // 禁止缓存当前文档:
    // load the file to send:readfile(’example.zip’);
    // Disable caching of the current document:
    header(’Cache-Control: no-cache, no-store, max-age=0, must-revalidate’);
    header(’Expires: Mon, 26 Jul 1997 05:00:00 GMT’);

    // 设置内容类型:
    // Date in the pastheader(’Pragma: no-cache’);
    // set content type:
    header(’Content-Type: text/html; charset=iso-8859-1′);
    header(’Content-Type: text/html; charset=utf-8′);
    header(’Content-Type: text/plain’);

    // plain text file
    header(’Content-Type: image/jpeg’);

    // JPG picture
    header(’Content-Type: application/zip’);

    // ZIP file
    header(’Content-Type: application/pdf’);

    // PDF file
    header(’Content-Type: audio/mpeg’);

    // Audio MPEG (MP3,…) file
    header(’Content-Type: application/x-shockwave-flash’);

    // 显示登录对话框,可以用来进行HTTP认证
    // Flash animation// show sign in box
    header(’HTTP/1.1 401 Unauthorized’);
    header(’WWW-Authenticate: Basic realm=”Top Secret”‘);

    print ‘Text that will be displayed if the user hits cancel or ‘;
    print ‘enters wrong login data’;

    ===================================================================================

    下面是参考的文档:

    常用 MIME 类型:

    类型

    描述

    text/html

    HTML (PHP 默认)

    text/plain

    纯文本

    image/gif

    GIF 图片

    image/jpeg

    JPEG 图片

    image/png

    PNG 图片

    video/mpeg

    MPEG 视频

    audio/wav

    WAV 音频

    audio/mpeg

    MP3 音频

    video/mov

    mov 视频

    video/quicktime

    Quicktime 视频

    video/x-ms-wmv

    Windows WMV 视频

    audio/x-ms-wma

    Windows WMA 音频

    audio/x-realaudio

    RealPlayer 音频/视频 (.rm)

    audio/x-pn-realaudio

    RealPlayer 音频/视频 (.ram)

    video/x-msvideo

    ms 视频

    video/avi

    AVI 视频

    application/pdf

    PDF 文档

    application/msword

    MS Word .doc 文件

    application/zip

    Zip 文件

    application/octet-stream

    其他. 数据. 用于强制下载或使用应用打开.*

    x-foo/x-bar

    其他. 数据. 用于强制下载或使用应用打开.*

    =================================================================================

    HTTP Header 详解

    HTTP(HyperTextTransferProtocol) 即超文本传输协议,目前网页传输的的通用协议。HTTP协议采用了请求/响应模 型,浏览器或其他客户端发出请求,服务器给与响应。就整个网络资源传输而言,包括message-header和message-body两部分。首先传 递message-header,即http header消息 。http header 消息通常被分为4个部分:general  header, request header, response header, entity header。但是这种分法就理解而言,感觉界限不太明确。根据维基百科对http header内容的组织形式,大体分为Request和Response两部分。

    Requests部分

    Header

    解释

    示例

    Accept

    指定客户端能够接收的内容类型

    Accept: text/plain, text/html

    Accept-Charset

    浏览器可以接受的字符编码集。

    Accept-Charset: iso-8859-5

    Accept-Encoding

    指定浏览器可以支持的web服务器返回内容压缩编码类型。

    Accept-Encoding: compress, gzip

    Accept-Language

    浏览器可接受的语言

    Accept-Language: en,zh

    Accept-Ranges

    可以请求网页实体的一个或者多个子范围字段

    Accept-Ranges: bytes

    Authorization

    HTTP授权的授权证书

    Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

    Cache-Control

    指定请求和响应遵循的缓存机制

    Cache-Control: no-cache

    Connection

    表示是否需要持久连接。(HTTP 1.1默认进行持久连接)

    Connection: close

    Cookie

    HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。

    Cookie: $Version=1; Skin=new;

    Content-Length

    请求的内容长度

    Content-Length: 348

    Content-Type

    请求的与实体对应的MIME信息

    Content-Type: application/x-www-form-urlencoded

    Date

    请求发送的日期和时间

    Date: Tue, 15 Nov 2010 08:12:31 GMT

    Expect

    请求的特定的服务器行为

    Expect: 100-continue

    From

    发出请求的用户的Email

    From: user@email.com

    Host

    指定请求的服务器的域名和端口号

    Host: www.zcmhi.com

    If-Match

    只有请求内容与实体相匹配才有效

    If-Match: “737060cd8c284d8af7ad3082f209582d”

    If-Modified-Since

    如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码

    If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT

    If-None-Match

    如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变

    If-None-Match: “737060cd8c284d8af7ad3082f209582d”

    If-Range

    如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。参数也为Etag

    If-Range: “737060cd8c284d8af7ad3082f209582d”

    If-Unmodified-Since

    只在实体在指定时间之后未被修改才请求成功

    If-Unmodified-Since: Sat, 29 Oct 2010 19:43:31 GMT

    Max-Forwards

    限制信息通过代理和网关传送的时间

    Max-Forwards: 10

    Pragma

    用来包含实现特定的指令

    Pragma: no-cache

    Proxy-Authorization

    连接到代理的授权证书

    Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

    Range

    只请求实体的一部分,指定范围

    Range: bytes=500-999

    Referer

    先前网页的地址,当前请求网页紧随其后,即来路

    Referer: http://www.zcmhi.com/archives/71.html

    TE

    客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息

    TE: trailers,deflate;q=0.5

    Upgrade

    向服务器指定某种传输协议以便服务器进行转换(如果支持)

    Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

    User-Agent

    User-Agent的内容包含发出请求的用户信息

    User-Agent: Mozilla/5.0 (Linux; X11)

    Via

    通知中间网关或代理服务器地址,通信协议

    Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)

    Warning

    关于消息实体的警告信息

    Warn: 199 Miscellaneous warning

    原文:https://blog.csdn.net/gaokcl/article/details/91043288

  • 相关阅读:
    欠拟合、过拟合、偏差、方差
    softmax详解
    解决Windows 10笔记本接显示器分屏后没有声音的问题
    图像的表示与通道数问题
    从梯度下降到反向传播(附计算例子)
    NuGet的简单使用
    深度神经网络(DNN)是否模拟了人类大脑皮层结构?
    范数(norm) 几种范数的简单介绍
    js 页码分页的前端写法
    前端使用注意事项
  • 原文地址:https://www.cnblogs.com/showcase/p/11556705.html
Copyright © 2011-2022 走看看