HTTP请求⽅法

news2024/12/25 10:03:03

HTTP请求⽅法

1. GET :申请获取资源,不对服务器产⽣影响
2. POST POST 请求通常⽤于发送数据,例如提交表单数据、上传⽂件等,会影响服务器,服务器可能动态创建新的资源或更新原有资源。
3. HEAD :类似 GET ,仅要求服务器返回头部信息,不返回实际的资源内容。
4. PUT :⽤于更新服务器上的资源或创建新资源。
5. DELETE :请求服务器删除指定的资源。
6. TRACE :⽤于测试。要求⽬标服务器返回原始的 HTTP 请求内容
7. PATCH : ⽤于对资源进⾏部分更新。
8. CONNECT :⽤于代理服务器
9. OPTIONS :⽤于获取服务器⽀持的 HTTP ⽅法列表,以及针对指定资源⽀持的⽅法

GETPOST请求的区别

概念
GET POST 都是 HTTP 请求⽅法
1 GET
申请获取资源,不对服务器产⽣影响
2 POST
客户端向服务器提交数据,会影响服务器,服务器可能动态创建新的资源或更新原有资源
请求数据:若为 GET ,则请求数据为空;其主要是在 POST 中进⾏使⽤,使⽤于需要填表单 (Form) 场景
参数传递
HTTP 协议没有 Body URL 的⻓度限制,对 URL 限制的⼤多是浏览器和服务器的原因。
GET 请求的参数⼀般写在 URL 中,所以 GET 传送的数据量较⼩,不能⼤于 2KB ,且只接受 ASCII 字符
POST 请求参数⼀般放在请求体中,所以其请求信息没有⻓度限制, 对于数据类型也没有限制
安全和幂等
安全: HTTP 协议中,安全是指请求⽅法不会破坏服务器上的资源
幂等:多次执⾏相同的操作,结果都相同
GET 为安全幂等的,因为它为只读操作,⽆论操作多少次,服务器上的数据都是安全的,且每次的结果都是相同的
POST 因为是「新增或提交数据」的操作,会修改服务器上的资源,所以是 不安全 的,且多次提交数据就会创建多个资源,所以不是幂等 的。
缓存机制
GET 请求会被浏览器主动 cache ,如果下⼀次传输的数据相同,那么就返回缓存中的内容,以求更快的展示数据,⽽ POST 不会,除⾮⼿动设置。
GET 请求参数会被完整保留在浏览器历史记录⾥,⽽ POST 中的参数不会被保留。
GET 产⽣的 URL 地址可以被 保存为书签,⽽ POST 不可以。
GET 在浏览器回退时是⽆害的,⽽ POST 会再次提交请求。
时间消耗
GET 产⽣⼀个 TCP 数据包:浏览器会把 header data ⼀并发送出去,服务器响应 200 (返回数据)
POST 产⽣两个 TCP 数据包,对于 POST ,浏览器先发送 Header ,服务器响应 100 continue ,浏览器再发送 data,服务器响应 200 ok (返回数据)
编码⽅式
GET 请求只能进⾏ URL 编码 application/x-www-form-urlencoded
POST ⽀持多种编码⽅式 application/x-www-form-urlencoded multipart/form-data 。为⼆进制数据使⽤多种编码。)
实际上本质都是⼀样的,并⽆区别
1. 都是 HTTP 请求协议的请求⽅法,⽽ HTTP ⼜是基于 TCP/IP 的关于数据如何在万维⽹中如何通信的协议,所以GET/POST实际上都是 TCP 链接
2. 由于 HTTP 的规定以及浏览器 / 服务器的限制,导致它们在应⽤过程中可能会有所不同

HTTP状态码

200 :客户端请求成功
206 partial content 服务器已经正确处理部分 GET 请求,实现断点续传或同时分⽚下载,该请求必须包含 Range 请求头来指示客户端期望得到的范围
301 (永久重定向):该资源已被永久移动到新位置,将来任何对该资源的访问都要使⽤本响应返回的若⼲个 URL之⼀
302 (临时重定向):请求的资源现在临时从不同的 URI 中获得
304 :如果客户端发送⼀个待条件的 GET 请求并且该请求以经被允许,⽽⽂档内容未被改变,则返回 304, 该响应不包含包体(即可直接使⽤缓存)
400 :请求报⽂语法有误,服务器⽆法识别
401 :请求需要认证
403 :请求的对应资源禁⽌被访问
404 :服务器⽆法找到对应资源
500 :服务器内部错误
503 :服务器正忙

HTTP缓存有⼏种

将资源(如⽹⻚、图像、脚本等)的副本存储在客户端或中间代理服务器上,以便将来的请求可以直接从缓存中获取,⽽不必重新从服务器下载资源。这有助于减少⽹络延迟,提⾼⻚⾯加载速度,并减轻服务器的负担。
缓存可以解决什么问题
减少不必要的⽹络传输,节约带宽
更快的加载⻚⾯
减少服务器负载,避免服务过载的情况出现
强制缓存
强缓存:浏览器判断请求的⽬标资源是否有效命中强缓存,如果命中,则可以直接从内存中读取⽬标资源,⽆需与服务器做任何通讯。
Expires 强缓存 :设置⼀个强缓存时间,此时间范围内,从内存中读取缓存并返回。
Cache-Control 强缓存 http1.1 中增加该字段,使⽤ max-age 指令,可以设置资源在缓存中的最⻓有效时间,单位为秒。例如, Cache-Control: max-age=3600 表示资源在缓存中保留 3600
协商缓存
与强制缓存不同,协商缓存依赖于客户端和服务器之间的交互,在协商缓存中,服务器在响应中提供了资源的⼀些标识信息,客户端在后续请求中通过这些信息来判断资源是否发⽣了变化,进⽽判断是否需要重新传输资源。
下⾯是常⽤于协商缓存的⼀些头部字段
ETag If-None-Match
ETag 是服务器为资源⽣成的唯⼀标识符,可以是根据⽂件内容计算出的哈希值。
客户端在请求头部的 If-None-Match 字段中携带上次响应的 ETag 值。
服务器⽐较请求中的 If-None-Match 值与当前资源的 ETag 值,如果匹配,表示资源未发⽣变化,返回状态码 304 Not Modified
Last-Modified If-Modified-Since
Last-Modified 是资源的最后修改时间,服务器在响应头部中返回。
客户端在请求头部的 If-Modified-Since 字段中携带上次响应的 Last-Modified 时间。
服务器⽐较请求中的 If-Modified-Since 值与当前资源的 Last-Modified 值,如果请求时间早于资源的最后修改时间,表示资源未发⽣变化,返回状态码 304 Not Modified

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2119156.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 &…

UE4_后期处理_后期处理材质四—场景物体描边

一、效果如下图: 二、分析: 回顾复习:在后期处理材质三中,我们通过计算开启自定义深度通道物体的像素点上下左右4个像素SceneTextureCustomDepth深度之和来判断物体的外部(包含物体的边)和内部&#xff0c…

【漏洞利用】2018年-2024年HVV 6000+个漏洞 POC 合集分享

此份poc 集成了Zabbix、用友、通达、Wordpress、Thinkcmf、Weblogic、Tomcat等 下载链接: 链接: https://pan.quark.cn/s/1cd7d8607b8a

Java小白一文讲清Java中集合相关的知识点(七)

LinkedHashSet LinkedHashSet是HashSet的子类 LinkedHashSet底层是一个LinkedHashMap,底层维护了一个数组双向链表 而在之前讲的HashSet中的链表是单向的哈,注意区分! LinkedHashSet根据元素的hashcode值来决定元素的存储位置,同时使用链表…

从搜索热度上看Arcgis的衰退

Arcgis已被qgis快速赶上 google trends是一个google综合了每日的搜索情况的统计网站,可以追踪从2004年开始各个关键字的搜索热度。 我用arcgis和qgis作为对比,简单探索了arcgis和qgis的全球相关热度。 假设,搜索arcgis越高的区域&#xff…

机器学习 第8章 集成学习

目录 个体与集成BoostingBagging与随机森林Bagging随机森林 结合策略平均法投票法学习法 个体与集成 定义:集成学习,也叫多分类器系统、基于委员会的学习等,它是一种通过结合多个学习器来构建一个更强大的学习器的技术。如下图所示 在这里&a…

轨道交通系统详解,以及地铁如何精准停靠站台

ATC系统 全称“自动列车控制系统”,Automatic Train Control,ATC ATC是地铁运行的核心系统,它包括列车自动防护(ATP)、列车自动运行(ATO)和列车自动监控(ATS)三个子系统。…

嵌入式day41

哈希表 将要存储的数据的关键字和位置建立对应的关系,通过哈希函数(散列函数)将数据映射到存储的位置,方便快速查找 哈希冲突/哈希矛盾: key1 ! key2 f(key1) f(key2) 解决方法: 链地址法 算法 解决…

都2024年了还不明白Redis持久化?RDB文件、AOF文件、AOF重写

都2024年了,不会还有人不知道redis的RDB和Aof吧?不知道没关系,看完这篇文章我相信你就会有个大概的了解和认识了 1. Redis持久化 1.1 持久化概念 Redis本身是一个基于内存的数据库,它提供了RDB持久化、AOF持久化两种方式&#…

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正…

大奖收割机!望繁信科技荣获年度技术创新和应用品牌奖

2023年8月14日,第七届GAIR全球人工智能与机器人大会在新加坡如期举行。 会上公布了「GAIR 2023 GPT Pioneer 5」榜单,望繁信科技凭借完全自主研发的流程智能平台,以及一系列在头部企业中的成功实践案例,与百度智能云、阿里云、知…

vector 容器基础操作及用法

目录 vector 容器基础操作及用法 一:定义及初始化 二:添加数据 三:删除数据 vector 容器基础操作及用法 CSTL是一个非常强大的容器库,其中 vector 是最为常用也较为方便的容器之一,下面主要介绍一下 vector 的一些…

学习threejs,创建立方体,并执行旋转动画

文章目录 一、前言二、代码示例三、总结 一、前言 本文基于threejs&#xff0c;实现立方体的创建&#xff0c;并加入立方体旋转动画 二、代码示例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>l…

数据同步方式何来“高级”与“低级”之说?场景匹配才是真理!

导读&#xff1a;数据同步方式的重要性对于数据集成领域的兴从业者不言而喻&#xff0c;选择正确的数据同步方式能让数据同步工作的成果事半功倍。目市面上的数据同步工具很多&#xff0c;提供的数据同步方式也有多种&#xff0c;不同的数据同步方式有什么区别&#xff1f;如何…

免费SSL证书正在逐渐被淘汰,证书部署自动化的发展趋势即将到来!

目录 背景解决方案。1.使用自签证书&#xff08;浏览器报警、免费&#xff09;2.更换支持自签自续的CA机构&#xff08;免费&#xff09;3.付费选择CA机构 免费SSL证书正在逐渐被淘汰&#xff0c;证书部署自动化的发展趋势即将到来免费的SSL证书有以下弊端1.有效期短&#xff1…

Python的安装与配置并在本地盘符创建共享路径打造低成本私人云盘

文章目录 前言1.本地文件服务器搭建1.1.Python的安装和设置1.2.cpolar的安装和注册 2.本地文件服务器的发布2.1.Cpolar云端设置2.2.Cpolar本地设置 3.公网访问测试4.结语 前言 本文主要介绍如何在Windows系统电脑上使用python这样的简单程序语言&#xff0c;在自己的电脑上搭建…

Leetcode面试经典150题-98.验证搜索二叉树

解法都在代码里&#xff0c;不懂就留言或者私信 二叉树的递归套路&#xff0c;练练就习惯了 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this…

内联汇编 (28)

1 首先是基本的格式。 网上的截图&#xff1a; 命令换行使用 \n\t 这里的constraint 指的就是 寄存器。 r , m , 比较重要。 这里的输出的意思是 &#xff0c; 从汇编到 C语言。 输入指的是 从C语言到 汇编语言 这是个具体的例子 %1, %2,%3, 是指 从上往下算&#xff0c;…

【Canvas与电脑桌面】白褐橘三色立方桌面(1920*1080)

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>白褐橘三色立方桌面Draft1</title><style type"text/c…

应用层协议-HTTPS协议

应用层协议-HTTPS协议 一.概述 HTTP协议&#xff1a;初衷未考虑到安全性 HTTPS是在HTTP的基础上对应用层数据进行加密操作&#xff0c;HTTPSHTTPSSL/TLS HTTPS &#xff08;全称&#xff1a;Hypertext Transfer Protocol Secure [5]&#xff09;&#xff0c;是以安全为目标…