计算机网络-HTTP相关知识-基础

HTTP基础

  • 基本概念:HTTP是一种计算机之间交流通信的规范,它允许数据在两点之间传输,这个过程可以包括中转或接力。HTTP不仅仅包括文本,还可以包括图片、音频等超文本。
  • 状态码:HTTP状态码分为五类:
    • 2xx:表示请求成功。例如,200 OK是最常见的成功状态码,表示请求已成功处理;204 No Content表示响应成功但响应头没有body数据。
    • 3xx:表示需要重定向。例如,301 Moved Permanently表示请求的资源已经不存在,需要永久重定向;302 Found表示请求的资源还在,但暂时需要用另一个URL来访问;304 Not Modified表示资源未修改,可以重定向到已存在的缓冲文件。
    • 4xx:表示客户端请求报文有误。例如,400 Bad Request表示请求报文存在语法错误;403 Forbidden表示服务器禁止访问该资源;404 Not Found表示请求的资源在服务器上不存在或未找到。
    • 5xx:表示服务器内部错误。例如,500 Internal Server Error表示服务器内部错误;501 Not Implemented表示服务器不支持当前请求所需要的某个功能;502 Bad Gateway表示服务器作为网关或代理时,从上游服务器接收到的响应是无效的。
  • 常见字段:HTTP报文中包含多种字段,如Host(表示请求的域名)、Content-Length(表示本次回应数据长度)、Connection(表示是否需要长连接)、Accept(表示客户端接受什么格式的数据)、Accept-Encoding(表示客户端接受什么压缩格式的数据)、Content-Type(表示数据的格式和编码方式)、Content-Encoding(表示数据的压缩方式)和User-Agent(表示用户代理,可以通过它来知道请求方是浏览器、爬虫等等)。

HTTP请求方法

  • GET:GET方法从服务器获取指定的资源,请求的参数通常写在URL中。GET是安全且幂等的,这意味着无论进行多少次操作,结果都是相同的。因此,可以对GET请求的数据做缓存。
  • POST:POST方法根据请求负荷(报文body)对指定的资源做出处理,请求的数据通常写在报文body中。POST既不安全也不幂等,因此,不能对POST请求的数据做缓存。

HTTP缓存技术

  • 强制缓存:如果浏览器判断缓存没有过期,则直接使用浏览器的本地缓存。强制缓存的决定权在浏览器这边,只要浏览器判断缓存没有过期,就会直接使用缓存,而不会向服务器发送请求。强制缓存可以通过设置Cache-Control或Expires字段来实现。
  • 协商缓存:只有在未能命中强制缓存的时候,才能发起带有协商缓存字段的请求。协商缓存可以通过两种方法实现:一种是通过If-None-Match字段带上上次响应头部中的Etag字段(唯一标识响应资源),由服务端比对资源;另一种是通过If-Modified-Since字段带上上次响应头部中的Last-Modified字段(上次修改时间),由服务端比对时间。如果服务器判断资源没有变化,则返回304状态码,告诉客户端可以使用本地缓存文件。

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

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

相关文章

一文搞懂 ThreadLocal

简介 ThreadLocal存取的数据,总是与当前线程相关,也就是说,JVM 为每个运行的线程,绑定了私有的本地实例存取空间,从而为多线程环境常出现的并发访问问题提供了一种隔离机制。 ThreadLocal的作用是提供线程内的局部变…

RK3588 NPU 研究(二)

RK提供了两个模型,mobilenet和YOLO5。 mobilenet模型相对小,使用起来不是很明显yolo5模型大一些,可以对88种目标进行检测,提供检测的结果包括类别、包围框坐标、可信度等信息。基于rknn_yolov5_demo进行分析。 rknn_yolov5_demo基…

TIMO后台管理系统-入门,简单易懂教程-技巧总结

Timo 要说的话: 这个项目的技术栈是JPA,会有很多文件去追踪,这些文件大多是使用内部的代码生成器做的,API文档做得不错,之前没做过项目的同学花一天了解API文件还是不错的 资料: 文档:http:…

360手机位置穿越修复 360手机位置穿越 360手机刷机 360手机黑科技 360位置穿越下载

360手机位置穿越修复 360手机位置穿越 360手机刷机 360手机黑科技 360位置穿越下载 360手机位置穿越钉钉打卡 360手机位置穿越微信打卡 360手机位置穿越滴滴打卡 360手机位置穿越美团打卡 360手机位置穿越 360手机位置穿越下载 360手机位置穿越 支持钉钉、微信等位置修改…

若依自带vue-cropper上传图片(可旋转、缩放)

2024.4.4今天我学习了如何使用若依的vue-cropper上传图片组件,在工作中遇到一个需求,需要对上传的图片进行旋转的操作,然后我先找到el-upload组件,使用之后发现它有一个自动上传和非自动上传的功能,是不是就可以通过非…

vulhub中Struts2-001 远程代码执行漏洞复现

该漏洞因为用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用 OGNL 表达式 %{value} 进行解析,然后重新填充到对应的表单数据中。例如注册或登录页面,提交失败后端一般会默认返回之前提交的数据,由于后端使用 %{v…

【快速解决】python缺少了PyQt5模块的QtMultimedia子模块

目录 问题描述 问题原因 解决方法 成功示范 问题描述 Traceback (most recent call last): File "d:\桌面\python项目\DesktopWords-master\main.py", line 4, in <module> from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent ModuleNotFoundEr…

设计模式总结-工厂方法模式

工厂方法模式 简单工厂模式的不足模式动机模式定义模式结构模式分析模式实例与解析 简单工厂模式的不足 在简单工厂模式中&#xff0c;只提供了一个工厂类&#xff0c;该工厂类处于对产品类进行实例化的中心位置&#xff0c;它知道每一个产品对象的创建细节&#xff0c;并决定…

Windows集群部署项目

目录 一&#xff0c;环境准备 1.1.安装MySQL 1.2.安装JDK 1.3.安装TomCat 1.4.安装Nginx 二&#xff0c;部署 2.1.后台服务部署 2.2.Nginx配置负载均衡及静态资源部署 一&#xff0c;环境准备 1.1.安装MySQL 可以参考博客&#xff1a;http://t.csdnimg.cn/A75bg 1.2.…

RP2040开发笔记

RP2040 采用合宙的RP2040(板载4MB Flash)&#xff0c; 所有开发资料参考官方&#xff1a;树莓派 Pico 中文站

2024整理一些前端面试题库一

以下是一些2024年前端面试题及其答案&#xff1a; HTML、XML、XHTML之间的区别是什么&#xff1f; HTML是一种标记语言&#xff0c;用于创建网页&#xff0c;定义页面的结构和内容&#xff0c;如标题、段落、表格、链接、图片等。 XML&#xff08;可扩展标记语言&#xff09;…

【活动创作】未来AI技术方面会有哪些创业机会

放假期间突然看到这个活动创作&#xff0c;觉得很有意思&#xff0c;既然如此&#xff0c;我就先让AI来回答一下吧&#xff0c;哈哈 1、文心一言 首先来看看文心一言的回答&#xff1a; 2、讯飞星火 然后来看看讯飞星火的回答&#xff1a; 3、个人感受 最后来说说给人感受吧&am…

查看MySQL版本的方式

文章目录 一、使用cmd输入命令行查看二、在mysql客户端服务器里查询 一、使用cmd输入命令行查看 1、打开 cmd &#xff0c;输入命令行&#xff1a; mysql --version 2、还是打开cmd&#xff0c;输入命令行&#xff1a;mysql -V (注意了&#xff0c;此时的V是个大写的V) 二、…

Linux课程____LVM(逻辑卷管理器)

LVM 技术是在硬盘分区和文件系统之间添加了一个逻辑层&#xff0c;它提供了一个抽象的卷组&#xff0c;可以把多块硬盘进行卷组合并。 这样一来&#xff0c;用户不必关心物理硬盘设备的底层架构和布局&#xff0c;就可以实现对硬盘分区的动态调整。 动态调整磁盘容量&#xff…

【GO语言卵细胞级别教程】11.探索Go语言的面向对象编程之美(含源码仅此一份,先到先得)

【GO语言卵细胞级别教程】11.探索Go语言的面向对象编程之美&#xff08;含源码仅此一份&#xff0c;先到先得&#xff09; 目录 【GO语言卵细胞级别教程】11.探索Go语言的面向对象编程之美&#xff08;含源码仅此一份&#xff0c;先到先得&#xff09;1.面向对象的引用1.1简介1…

linux 搭建Samba服务

Samba简介 SAMBA是⼀个实现不同操作系统之间⽂件共享和打印机共享的⼀种SMB协议的免费软件&#xff0c; SMB(Server Message block)协议是window下所使⽤的⽂件共享协议&#xff0c;我们在linux系统或 者其类unix系统当中可以通过samba服务来实现SMB功能。 &#xff08;1&…

B/S架构SaaS模式 医院云HIS系统源码,自主研发,支持电子病历4级

B/S架构SaaS模式 医院云HIS系统源码&#xff0c;自主研发&#xff0c;支持电子病历4级 系统概述&#xff1a; 一款满足基层医院各类业务需要的云HIS系统。该系统能帮助基层医院完成日常各类业务&#xff0c;提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查…

【并发编程】线程安全

线程安全 1. 讲一下 synchronized 关键字的底层原理 1.1 基本使用 如下抢票的代码&#xff0c;如果不加锁&#xff0c;就会出现超卖或者一张票卖给多个人 synchronized&#xff0c;同步【对象锁】采用互斥的方式让同一时刻至多只有一个线程能持有【对象锁】 其它线程再想获…

【QT+QGIS跨平台编译】056:【pdal-dimbuilder+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、pdal介绍二、dimbuilder介绍三、pdal下载四、文件分析五、pro文件六、编译实践七、生成Dimension.hpp八、生成pdal_features.hpp一、pdal介绍 PDAL(Point Data Abstraction Library)是一个开源库,用于处理点云数据的获取、过滤、转换、分析和…

基于微信小程序的实验室预约系统的设计与开发

个人介绍 hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的…