计算机网络-HTTP相关知识(一)

news2024/11/29 2:52:52

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.coloradmin.cn/o/1559969.html

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

相关文章

移植DM9000驱动至内核(linux-2.6.32.24)

目录 概述 1 移植 DM9000驱动 1.1 添加设备驱动代码 1.2 调整 DM9000 所用的位宽寄存器 1.3 配置MAC地址 2 配置和编译DM9000 Driver至内核 3 验证 概述 本文主要介绍如何移植DM9000的驱动到linux-2.6.32.24内核,笔者详细记录了内核移植过程中遇见的问题&…

【InternLM 实战营第二期笔记】InternLM1.8B浦语大模型趣味 Demo

体验环境 平台:InternStudio GPU:10% 配置基础环境 studio-conda -o internlm-base -t demo 与 studio-conda 等效的配置方案 conda create -n demo python3.10 -y conda activate demo conda install pytorch2.0.1 torchvision0.15.2 torchaudio2…

如何使用 Python 本地客户端操作读写云服务器 Redis 缓存数据库详细教程(更新中)

Redis 基本概述 Redis(Remote Dictionary Server)是一个开源的使用 ANSI C 语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。它通常被称为数据结构服务器,因为值(value…

Docker配置Mysql

1.首页搜索mysql镜像 2.选择对应版本的MySQL,点击pull 3.pull完成以后,点击images,这里可以看到刚刚pull完成的mysql版本 4.打开命令界面,运行命令 docker images ,查看当前已经pull的images 5.运行命令设置mysql docker run -it…

PHP三种方式读取RSA密钥加解密、签名验签完整教程

目录 第一步、生成公私钥 第二步、三种方式读取RSA密钥 第1种:公私钥弄成一行,必须一行没有空格和换行 第2种:直接复制生成公私钥 第3种;复制密钥存储为.pem文件后缀 第三步、RSA加解密 第四步、RSA签名以及验证签名 第五步、封装完整…

[图像处理] MFC载入图片并进行二值化处理和灰度处理及其效果显示

文章目录 工程效果重要代码完整代码参考 工程效果 载入图片,并在左侧显示原始图片、二值化图片和灰度图片。 双击左侧的图片控件,可以在右侧的大控件中,显示双击的图片。 初始画面: 载入图片: 双击左侧的第二个控件…

QT记事本

QT记事本 1.概述 2.界面  2.1 界面布局  2.2 UI美化stylesheet   2.2.1 准备   2.2.2 stylesheet   2.2.3 效果 2.3 窗口大小调整与子控件自适应 3.信号与槽  3.1 简述  3.2 信号与槽设置   3.2.1 UI控件设置   3.2.2 UI转到槽(自动连接&am…

Go 源码之 gin 框架

Go 源码之 gin 框架 go源码之gin - Jxy 博客 一、总结 gin.New()初始化一个实例:gin.engine,该实例实现了http.Handler接口。实现了ServeHTTP方法 注册路由、注册中间件,调用addRoute将路由和中间件注册到 methodTree 前缀树(节…

flutter官方案例context_menus

1:根据项目中的案例进行部署 2:运行查看有什么用,可不可以直接复制粘贴 案例地址 https://github.com/flutter/samples/tree/main/context_menus案例展示方法 直接把这个文件夹中的文件复制到lib文件夹中 3,19,4的fl…

关系型数据库mysql(10)MHA的高可用

一. MHA 的相关知识 1. 什么是 MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA 的出现就是解决MySQL 单点的问题。MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障…

[Windows]防火墙,出入站规则失效。

场景: 因为具体需要,在内网中,不想别人发现我们的nacos端口8848,因此我们设置了入站规则,特定的ip地址才能访问。但是实际测试中发现并不起作用。。。 经过一番排查得到一下结果。 为什么有些应用绕过了防火墙配置 有…

JimuReport积木报表 v1.7.4 公测版本发布,免费的JAVA报表工具

项目介绍 一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报…

Linux速览(2)——环境基础开发工具篇(其一)

本章我们来介绍一些linux的常用工具 目录 一. Linux 软件包管理器 yum 1.什么是软件包? 2. 查看软件包 3. 如何安装软件 4. 如何卸载软件 5.yum补充 6. 关于 rzsz 二. Linux编辑器-vim使用 1. vim的基本概念 2. vim的基本操作 3. vim正常模式命令集 4. vim末行模式…

计算机网络-从输入网址到访问网站的全过程

当我们在浏览器中输入一个网址并按下回车键时,会发生一系列复杂的过程,最终使我们能够看到网页的内容。以下是这个过程的详细步骤: 客户端:首先,用户在浏览器中键入网址,然后浏览器会根据这个网址生成一个H…

vultr ubuntu 服务器远程桌面安装及连接

一. 概述 vultr 上开启一个linux服务器,都是以终端形式给出的,默认不带 ui 桌面的,那其实对于想使用服务器上浏览器时的情形不是很好。那有没有方法在远程服务器安装桌面,然后原程使用呢?至少ubuntu的服务器是有的&am…

C练习题(1)

变种水仙花(来自牛课网) 题目 变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆…

IDEA 如何快速创建 Springboot 项目,面试题kafka数据丢失问题

(3)填写并选择: 1,2 处:是 Maven 工程的两个属性唯一标识,随意填。 3处:类型选择 Maven 项目 4处:语言选择 Java 5处:打包方式选择 Jar 6处:Java版本选择…

KeepAlived使用介绍

目录 1、Introduce 2、基本使用 (1)安装 (2)配置文件 (3)使用教程 1、Introduce keepalived是一个用于实现高可用性和负载均衡的开源软件。它提供了一种轻量级的方式来管理多个服务器,并确保…

【Spring Boot 源码学习】ConditionEvaluationReport 日志记录上下文初始化器

《Spring Boot 源码学习系列》 ConditionEvaluationReport 日志记录上下文初始化器 一、引言二、往期内容三、主要内容3.1 源码初识3.2 ConditionEvaluationReport 监听器3.3 onApplicationEvent 方法3.4 条件评估报告的打印展示 四、总结 一、引言 上篇博文《共享 MetadataRe…

【嵌入式智能产品开发实战】(十二)—— 政安晨:通过ARM-Linux掌握基本技能【运行环境】

目录 简述 开始 操作系统环境下的程序运行 裸机环境下的程序运行 程序入口main()函数分析 BSS段的小提示 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 嵌入式智能产品开发实战 希望政安晨的博客能够对您有所裨益,如有不…