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

一文讲清楚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.mrgr.cn/news/82548.html

相关文章:

  • NOTEPAD++编写abap
  • 蓝桥杯模拟算法:多项式输出
  • 数据库表数据导出攻略:SQL脚本生成全解析
  • FPGA自分频产生的时钟如何使用?
  • 获取可用的打印机列表
  • Delete `␍`eslintprettier/prettier
  • 【算法不挂科】算法期末考试【选择题专项练习】<多单元汇总>
  • C++例程:使用其I/O模拟IIC接扣(2)
  • SAP SD销售模块常见BAPI函数
  • pandas-栗子
  • Arduino UNO 驱动1.8 TFT屏幕显示中文
  • 软件逆向之标志位
  • 公共数据授权运营系统建设手册(附下载)
  • Tableau数据可视化与仪表盘搭建-数据连接
  • C语言:结构体
  • 【Rust自学】10.4. trait Pt.2:trait作为参数和返回类型、trait bound
  • 每天你好20250105(距离春节24天!!!)
  • 「C++笔记」unordered_map:哈希化的无序映射函数(键值对)
  • BerOS 文件系统路径归一化问题及其 Python 实现
  • 软件测试面试题整理
  • Chapter 3 Coding Attention Mechanisms
  • unity学习6:unity的3D项目的基本界面和菜单
  • 基于NLP的医学搜索相关性判断
  • GIT 企业级开发学习 1_基本操作
  • Navicat 17 for Mac 数据库管理软件
  • 人工智能之机器学习算法