zoukankan      html  css  js  c++  java
  • http协议

    http基本格式

    • 请求报文:请求行(请求方法,请求url,http版本),消息报头(报文首部[请求行,请求首部字段{Accept,Accept-Language,Authorization,Cookie,Host,Referer,User-Agent},通用首部字段{Connect,Date,Transfer-Encoding,Update,Via,Cache-Control},实体首部字段{字段名和字段值组成,中间通过:分隔}],空行,报文主体),请求内容。

    • 响应报文:状态行(http版本,状态码,原因语句),消息报文(报文首部[状态行,响应首部字段{Age,Set-Cookie,Server,Retry-after,Refresh},通用首部字段,实体首部字段{Allow,Content-Location,Content-Encoding,Content-Length,Content-MD5,Content-Type}{字段名和字段值组成,中间通过:分隔}],空行,报文主体),响应内容。

    找到一个思维导图,如下:

    高清链接

    HTTP的304

    当客户端缓存了资源但是不确定是否是最新版本的时候,就会发送一个条件请求。客户端请求头重会有一个If-Modified-Since字段,值为服务器上次返回的Last-Modified响应头中的日期值,或If-None-Match请求头,值为服务器上次返回的ETag响应头的值。
    服务器会读取到这两个请求头中的值,判断出客户端缓存的资源是否是最新的,如果是的话,服务器就会返回HTTP/304 Not Modified响应,但没有响应体.客户端收到304响应后,就会从缓存中读取对应的资源.

    HTTP/1.1 304 Not Modified
    Date: Wed, 20 Sep 2017 02:55:00 GMT
    ETag: W/"4e5-Zg3sHPCCzRN/HV5jc1sXjQ"
    Server: openresty
    X-Proxy-Latency: 0
    
    GET /hello HTTP/1.1
    Host: wyc.com
    Connection: keep-alive
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
    If-None-Match: W/"4e5-Zg3sHPCCzRN/HV5jc1sXjQ"
    
  • 相关阅读:
    ORACLE时间函数(SYSDATE)简析
    RestTemplate请求
    Java中ASM框架详解
    java进阶
    Java,Mysql-根据一个给定经纬度的点,进行附近500米地点查询–合理利用算法
    JAVA程序员必看的15本书-JAVA自学书籍推荐
    Linux curl命令详解
    Java 集合系列06之 Vector详细介绍(源码解析)和使用示例
    腾讯信鸽推送Android SDK快速指南
    信鸽推送.NET SDK 开源
  • 原文地址:https://www.cnblogs.com/mentalidade/p/7058249.html
Copyright © 2011-2022 走看看