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内容的组织形式,大体分为请求和响应两部分。

1.Request部分

解释示例
接受指定客户端能够接收的内容类型接受:text / plain,text / html
接收字符浏览器可以接受的字符编码集。Accept-Charset:iso-8859-5
接受编码指定浏览器可以支持的网络服务器返回内容压缩编码类型。Accept-Encoding:compress,gzip
接受语言浏览器可接受的语言Accept-Language:en,zh
接受-范围可以请求网页实体的一个或者多个子范围字段Accept-Ranges:字节
授权HTTP授权的授权证书授权:基本QWxhZGRpbjpvcGVuIHNlc2FtZQ ==
缓存控制指定请求和响应遵循的缓存机制缓存控制:无缓存
连接表示是否需要持久连接。(HTTP 1.1默认进行持久连接)连接:关闭
曲奇饼HTTP请求发送时,会把保存在该请求域名下的所有cookie的值一起发送给网络服务器。Cookie:$ Version = 1; 皮肤=新的;
内容长度请求的内容长度内容长度:348
内容类型请求的与实体对应的MIME信息内容类型:application / x-www-form-urlencoded
日期请求发送的日期和时间日期:2010年11月15日星期二08:12:31 GMT
期望请求的特定的服务器行为期待:100-继续
发出请求的用户的电子邮件来自:user@email.com
主办指定请求的服务器的域名和端口号主持人:www.zcmhi.com
如果-匹配只有请求内容与实体相匹配才有效如果匹配:“737060cd8c284d8af7ad3082f209582d”
如果-Modified-Since的如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码If-Modified-Since:星期六,2010年10月29日19:43:31 GMT
如果 - 无 - 匹配如果内容未改变返回304代码,参数为服务器先前发送的的Etag,与服务器回应的Etag的比较判断是否改变如果 - 无匹配:“737060cd8c284d8af7ad3082f209582d”
如果量程如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。参数也为的EtagIf-Range:“737060cd8c284d8af7ad3082f209582d”
如果未修饰的,因为只在实体在指定时间之后未被修改才请求成功If-Unmodified-Since:周六,2010年10月29日19:43:31 GMT
马克斯 - 前锋限制信息通过代理和网关传送的时间Max-Forwards:10
附注用来包含实现特定的指令Pragma:没有缓存
代理授权连接到代理的授权证书代理授权:基本QWxhZGRpbjpvcGVuIHNlc2FtZQ ==
范围只请求实体的一部分,指定范围范围:字节= 500-999
引荐先前网页的地址,当前请求网页紧随其后,即来路推荐人:http:  //www.baidu.com
TE客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息TE:拖车,放气; q = 0.5
升级向服务器指定某种传输协议以便服务器进行转换(如果支持)升级:HTTP / 2.0,SHTTP / 1.3,IRC / 6.9,RTA / x11
用户代理用户代理的内容包含发出请求的用户信息用户代理:Mozilla / 5.0(Linux; X11)
通过通知中间网关或代理服务器地址,通信协议通过:1.0弗雷德,1.1 nowhere.com(Apache / 1.1)
警告关于消息实体的警告信息警告:199其他警告

2.Respone

解释示例
接受-范围表明服务器是否支持指定范围请求及哪种类型的分段请求Accept-Ranges:字节
年龄从原始服务器到代理缓存形成的估算时间(以秒计,非负)年龄:12岁
允许对某网络资源的有效的请求行为,不允许则返回405允许:GET,HEAD
缓存控制告诉所有的缓存机制是否可以缓存及哪种类型缓存控制:无缓存
内容编码网络服务器支持的返回内容压缩编码类型。内容编码:gzip
内容语言响应体的语言内容 - 语言:en,zh
内容长度响应体的长度内容长度:348
内容位置请求资源可替代的备用的另一地址内容位置:/index.htm
内容-MD5返回资源的MD5校验值Content-MD5:Q2hlY2sgSW50ZWdyaXR5IQ ==
内容范围在整个返回体中本部分的字节位置内容范围:字节21010-47021 / 47022
内容类型返回内容的MIME类型Content-Type:text / html; 字符集= utf-8的
日期原始服务器消息发出的时间日期:2010年11月15日星期二08:12:31 GMT
ETag的请求变量的实体标签的当前值ETag:“737060cd8c284d8af7ad3082f209582d”
过期响应过期的日期和时间到期日:2010年12月1日星期四16:00:00 GMT
最后修改请求资源的最后修改时间Last-Modified:Tue,2010年11月15日12:45:26 GMT
地点用来重定向接收方到非请求URL的位置来完成请求或标识新的资源地点:http:  //baidu.com
附注包括实现特定的指令,它可应用到响应链上的任何接收方Pragma:no-cache Proxy-Authenticate它指出认证方案和可应用到代理的该URL上的参数Proxy-Authenticate:Basic
刷新应用于重定向或一个新的资源被创造,在5秒之后重定向(由网景提出,被大部分浏览器支持)刷新:5;网址= http://1213.com
重发后如果实体暂时不可取,通知客户端在指定时间之后再次尝试Retry-After:120
服务器网络服务器软件名称服务器:Apache / 1.3.27(Unix)(Red-Hat / Linux)
设置Cookie设置Http CookieSet-Cookie:UserID = JohnDoe; 最大年龄= 3600; 版本= 1
预告片指出头域在分块传输编码的尾部存在预告片:Max-Forwards
传输编码文件传输编码传输编码:分块
变化告诉下游代理是使用缓存响应还是从原始服务器请求变化:*
通过告知代理客户端响应是通过哪里发送的通过:1.0弗雷德,1.1 nowhere.com(Apache / 1.1)
警告警告实体可能存在的问题警告:199其他警告WWW-Authenticate表明客户端请求实体应该使用的授权方案WWW-Authenticate:Basic

3.cookie应用

    //设置cookie
    Cookie cookie = new Cookie(Constants.COOKIE_NAME, sessionId);
    cookie.setDomain(PropertiesUtil.getProperty("cookie", "domain"));
    cookie.setMaxAge(60 * 60 * 24 * 180);
    cookie.setHttpOnly(true);
    cookie.setSecure(false);
    cookie.setPath("/");
    response.addCookie(cookie);
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
    //获取cookie
    tring sessionId = null;
    Cookie[] cookies = request.getCookies();
    for (Cookie cookie : cookies) {
        if (cookie.getName().equals(Constants.COOKIE_NAME)) {
            sessionId = cookie.getValue();
            break;
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9

4.获取引荐

        String viewerHeader = request.getHeader(Constants.REFERER_HEADER);
        URL refererUrl = new URL(viewerHeader);
        String url = refererUrl.getHost();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值