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

一文讲清楚HTTP常见的请求头和应用

文章目录

  • 一文讲清楚HTTP常见的请求头和应用
  • 1. 啥是个HTTP请求头
  • 2. 常见的请求头,作用和示例
  • 3.协商缓存
  • 4.会话状态

一文讲清楚HTTP常见的请求头和应用

1. 啥是个HTTP请求头

  • 一句话,说白了就是限定HTTP传输的一些规则参数,比如Accept,就限定能够接受回应内容的类型

  • 上图,
    在这里插入图片描述

  • 这就是一个Request 请求头,Accept的值为 application/json, text/javascript, /; q=0.01

  • 当然还有很多的请求头

2. 常见的请求头,作用和示例

请求头含义用例
Accept能够接受的回应内容的类型Accept:text/javascript
Accept-Charset能够接受的字符集Accept-Charset:utf-8
Accept-Language能够接受的回应内容的自然语言列表Accept-Language:en-US
Accept-Encoding能够接受的编码方式的列表Accept-Encoding:gzip
Authorization用于超文本传输协议的认证的认证信息Authorization:Basic JkfjrJDHkNE==
Cache-Control用来指定本次请求/响应链中的所有缓存机制都必须遵守的指令Cache-Control:no-cache
Connection浏览器优先使用的链接类型Connection:keep-alive
Cookie服务器通过Set-Cookie发送的一个超文本传输协议CookieCookie:Userid=1
Content-Length请求体的长度,计量单位八位字节数字Content-Length:174
Content-Type请求的多媒体类型Content-Type:application/x-www-form-urlencoded
Date发送笑死的日期和事件Date:Sun,12 Nov 2024 12:112:12 GMT
Expect客户端要求服务器做出的特定行为Expect:100-continue
Host域名和端口号Host:meiqianmei:80
If-Match当客户端提交的实体和服务器对应的实体匹配时才进行操作,多用于PUT方法If-Match:“sdfssfs63”
If-Modified-Since允许在对一个的内容未被修改的情况下返回304未修改,按时间查If-Modified-Since:Sun,12 Nov 2024 12:112:12 GMT
If-None-Match允许在对一个的内容未被修改的情况下返回304未修改 ,按Etag值查If-None-Match:‘sdfssfs’
If-Range如果实体未被修改,发送缺少的,如果被修改,返回全部,按Etag值查If-Range:‘sdfssfs’
Range仅请求某个实体的一部分Range:bytes=100-200
User-Agent用户浏览器的身份标识User-Agent:Mozilla/5.0
Origin发起一个针对跨源资源共享的请求Origin:www.baodu.com

3.协商缓存

  • 通过请求头和响应头的配合,可以完成协商缓存
  • 利用[Last-Modified/If-Modified-Since]和[Etag/If-None-Match]这两队请求头来管理
  • Last-Modified表示本地文件最后的修改时间,浏览器会在Request Header中加上If-Modified-Since(上次服务器返回的Last-Modified值),询问服务器在这个时间够,资源是否有更新,如果有更新,就把资源返回来
  • Etag理解为哈希值,资源变化以后,Etag都会变化,跟修改时间没有关系,具有唯一性
  • If-None-Match会将上次服务器返回的Etag值发动给服务器,服务器比对当前Etag个客户端传过来的Etag是否一致,如果不一致,说明资源有变化,发送新的资源
  • 如果是强制缓存,则不需要发送请求到服务端,根据请求头expire和cache-control是否强制缓存
    在这里插入图片描述

4.会话状态

  • cookie,通过响应头set-cookie设置,为了辨别用户身份而存储在用户本地终端的数据。
  • 主要用于会话状态管理,比如登录状态等
  • 还有一些个性化设置,比如主题等
  • 浏览器行为跟踪,追踪用户的行为并进行分析

http://www.kler.cn/a/467366.html

相关文章:

  • 【Elasticsearch】文档操作:添加、更新和删除
  • 基于Centos 7系统的安全加固方案
  • 光缆生产车间可视化,让智能制造更透明
  • Flask是什么?深入解析 Flask 的设计与应用实践
  • ThreadPoolExecutor keepAliveTime 含义
  • Linux 内核中网络接口的创建与管理
  • opencv与halcon的差距及改进方法
  • 浅谈文本匹配
  • 深入Android架构(从线程到AIDL)_10 主线程(UI 线程)的角色
  • [Day 12]904.水果成篮
  • cpp编译链接等
  • Java 关键字【synchronized】
  • 智慧招商宣传系统(源码+文档+部署+讲解)
  • 香橙派安装 opencv 4.9.0
  • C++文件流 例题
  • 电子应用设计方案86:智能 AI背景墙系统设计
  • 激活函数概述及对比
  • 计算机网络 (24)网际控制报文协议ICMP
  • Excel导出功能:vue2+SpringBoot
  • 4.3 最短路径问题:Dijkstra、Floyd
  • tensorflow 内存错误
  • NS4866 500mA 多功能锂电池充放电管理IC
  • django vue3实现大文件分段续传(断点续传)
  • unity学习3:如何从github下载开源的unity项目
  • 数字0、字符‘0’、转义字符‘\0’、NULL有什么区别?
  • Profinet转EtherNet/IP网关连接AB PLC的应用案例