【面试八股总结】超文本传输协议HTTP(一)

一、 什么是HTTP协议?

HTTP是超文本传输协议 HyperText Transfer Protocol

特性:

  • 简单、灵活、易于扩展
  • 无状态:服务器不会记忆HTTP状态
  • 不安全通信使用明文,不验证通信方身份,无法的证明报文的完整性(可能被篡改)

二、 HTTP报文

1. HTTP请求报文

  • Request Line         请求行:请求方法 URL  HTTP协议版本号
  • Request  Headers 请求头:包含请求的附加信息,由key:value组成
  •                               空    行:分隔请求头和请求体
  • Request Body        请求体:承载多个请求参数的数据(可选)

2. HTTP响应报文

  • Status Line              状态⾏:HTTP协议版本 状态码 状态消息
  • Response Headers 响应头:以键值对的形式提供的额外信息
  •                                 空    行
  • Response Body       响应体:体包含服务器返回给客户端的实际数据

三、 HTTP请求方法

HTTP1.0 定义了三种请求⽅法: GET, POST 和 HEAD⽅法。

HTTP1.1 新增了六种请求⽅法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT ⽅法

方法描述
GET请求指定的⻚⾯信息,并返回实体主体。
POST

向指定资源提交数据进行处理请求(eg.提交表单/上传文件),数据包含在请求体中。

POST请求可能导致新的资源建立/已有资源的改变。

HEAD类似于GET,但返回相应中没有具体资源,用于获取情报头。
PUT从客户端向服务器传送的数据取代指定的文档的内容。
DELETE请求服务器删除指定页面。
CONNECTHTTP1.1 协议中预留给能够将连接改为管道方式的代理服务器,用于代理服务器。
OPTIONS允许客户端查看服务器的性能。
TRACE回显服务器收到的请求,主要用于测试或诊断。
PATCH对PUT方法的补充,用于对已知资源进行局部更新。

 GET和POST有什么区别?

GETPOST
概念获取数据,不影响服务器修改数据,会影响服务器
参数传递GET请求参数一般写在URL中,所以GET传送的数据量一般较小,不能大于2K,且只接受ASCII字符。POST请求参数一般放在请求体中,其请求信息没有长度限制和数据类型限制。
请求报文GET将请求的数据放在URL上,以?分割URL和传输数据,参数以&相连POST将数据放在HTTP的请求体内
安全

安全,因为GET为只读操作,不会对服务器数据产生影响。

不安全,POST方法会修改服务器上资源。
幂等幂等,每次GET都不会改变服务器资源。不幂等,多次提交数据会创建多个资源。
缓存机制

GET请求会被浏览器主动缓存,请求参数也被完整保留在浏览器历史记录中,且在浏览器中 GET 请求可以保存为书签。

POST不会被浏览器主动缓存,参数也不会被保留,也不能把POST请求作为书签。

时间消耗GET产生一个TCP数据包:浏览器会把Header和Data一并发送出去,服务器相应200(返回数据)POST产生两个TCP数据包:浏览器先发送Header,服务器响应100 continue,浏览器再发送Data,服务器响应200 ok(返回数据)
编码方式只能进行URL编码支持多种编码方式

补充说明:

 1)HTTP协议没有Body和URL的长度限制,对URL限制的大多是浏览器和服务器的原因。

 2)安全:HTTP协议中,安全是指请求方法不会破坏服务器上的资源。

 3)幂等:多次执行相同的操作,结果都相同。一次和多次请求某一个资源应该具有相同的作用,

四、 HTTP状态码

状态码分类具体🌰含义
1xx 信息100 Continue表明到⽬前为⽌都很正常,客户端可以继续发送请求或者忽略这个响应。
2xx 成功200 OK最常见的成功状态码,表示一切正常。如果是非 HEAD请求,服务器返回的响应头都会有 body 数据。
204 No Content请求已经成功处理,但是返回的响应报⽂不包含实体的主体部分。⼀般在只需要从客户端 往服务器发送信息,⽽不需要返回数据时使⽤。
206 Partial Content表示客户端进⾏了范围请求,响应报⽂包含由 Content-Range 指定范围的实体内 容。
3xx 重定向301 Moved Permanently 永久性重定向,说明请求的资源已经不存在了,需改用新的 URL 再次访问。
302 Found临时性重定向
303 See Other和 302 有着相同的功能,但是 303 明确要求客户端应该采⽤ GET ⽅法获取资源。
304 Not Modified如果请求报⽂⾸部包含⼀些条件,例如:If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since,如果不满⾜条件,则服务器会返回 304 状态码。
307 Temporary Redirect临时重定向,与 302 的含义类似,但是 307 要求浏览器不会把重定向请求的 POST ⽅法改成 GET ⽅法。
4xx 客户端错误400 Bad Request请求报⽂中存在语法错误。
401 Unauthorized该状态码表示发送的请求需要有认证信息(BASIC 认证、DIGEST 认证)。如果之前已 进⾏过⼀次请求,则表示⽤户认证失败。
403 Forbidden请求被拒绝。
404 Not Found请求的资源在服务器上不存在或未找到,所以无法提供给客户端。
5xx 服务器错误500 Internal Server Error服务器正在执⾏请求时发⽣错误。
501 Not Implemented客户端请求的功能还不支持。
502 Bad Gateway服务器作为网关或代理时返回的错误码,表示服务器自身工作正常,访问后端服务器发生了错误。
503 Service Unavailable服务器暂时处于超负载或正在进⾏停机维护,现在⽆法处理请求。

五、 HTTP常见字段

分类字段名称含义
通⽤头部字段General HeadersCache-Control指定缓存策略
Connection控制连接的⾏为
Date指定⽇期和时间
请求头部字段Request HeadersAccept指定客户端能够接受的响应的MIME类型
Accept-Encoding指定客户端⽀持的内容编码⽅式
Authorization⽤于进⾏身份验证的凭据
Host指定请求的⽬标主机和端⼝
User-Agent标识客户端的⽤户代理(浏览器或其他⼯具)

响应头部字段

Response Headers

Content-Length 服务器返回数据时,带有该字段,表示回应的数据长度
Content-Type服务器回应时,告诉客户端本次数据的格式
Content-Enconding服务器返回的数据使用了什么压缩格式

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

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

相关文章

Kubernetes kafka系列 | Strimzi 部署kafka-bridge

Strimzi kafka集群部署直通车 一、kafka bridge 介绍 Kafka Bridge 是 Apache Kafka 生态系统中的一个工具或组件,用于实现 Kafka 与其他系统或协议之间的通信或集成。Kafka 本身是一个分布式事件流平台,广泛用于构建实时数据流水线和流式应用程序。然而…

四川易点慧电子商务抖音小店:安全靠谱,购物新体验

随着互联网的飞速发展,电子商务已经成为人们日常生活中不可或缺的一部分。四川易点慧电子商务有限公司,作为一家专注于抖音小店的电商平台,以其安全靠谱的特性,赢得了广大消费者的信赖和喜爱。 一、平台背景与实力 四川易点慧电子…

iPhone设备中如何导出和分享应用程序崩溃日志的实用方法

​ 目录 如何在iPhone设备中查看崩溃日志 摘要 引言 导致iPhone设备崩溃的主要原因是什么? 使用克魔助手查看iPhone设备中的崩溃日志 奔溃日志分析 总结 摘要 本文介绍了如何在iPhone设备中查看崩溃日志,以便调查崩溃的原因。我们将展示三种不同的…

MVC与三层架构理解

1. JSP的发展 早期只有Servlet,只能使用response输出标签数据,非常麻烦后来。JSP的出现,简化了 Servlet的开发。但是过度的使用JSP,在JSP中写大量的java代码,又前端的页面,造成难以维护,难于分…

Excel制作甘特图

使用Excel表格制作甘特图,可根据任务开始时间和结束时间自动计算工时,并自动用指定颜色填充横道图。 1.新建Excel文档,先设置项目基本信息,包括表格名称,这里设置为“**项目甘特图”;然后添加任务序号列&a…

【软件工程导论】——面向对象与UML(学习笔记)

📖 前言:面向对象是以问题空间中出现的物体为中心进行模型化的一种技术。建立模型是软件工程中最常使用的技术之一。无论软件分析或软件设计,都需要建立模型。UML 就是OO 软件工程使用的统一建模语言。它是一种图形化的语言,主要用…

3D DRAM在2025年来袭

4月1日消息,据半导体工程报道,在行业大会Memcon 2024上,三星电子宣布其计划成为首家在2025年后步入3D DRAM内存时代的行业领军者。随着DRAM内存行业在本十年后期将线宽压缩至低于10纳米,现有的设计解决方案在如此精细的尺度上难以…

HarmonyOS 应用开发之Actor并发模型对比内存共享并发模型

内存共享并发模型指多线程同时执行复数任务,这些线程依赖同一内存并且都有权限访问,线程访问内存前需要抢占并锁定内存的使用权,没有抢占到内存的线程需要等待其他线程释放使用权再执行。 Actor并发模型每一个线程都是一个独立Actor&#xf…

Cisco交换机安全配置

Cisco交换机安全配置 前提 我们以下命令一般都要先进入Config模式 S1> enable S1# conf t S1(config)#端口安全保护 禁用未使用的端口 以关闭fa0/1到fa0/24的端口为例 S1(config)# interface range fa0/1-24 S1(config-if-range)# shutdown缓解MAC地址表攻击 防止CAM…

sql注入---Union注入

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 学习目标 了解union注入过程中用到的关键数据库,数据表,数据列sql查询中group_concat的作用使用union注入拿到靶机中数据库里的所有用户名和密码 一. 获得数据库表名和列…

酷开系统 | 酷开科技打造全流程全自动化运营链路

近日,QuestMobile发布的《2023年全景生态流量半年报告》数据显示,随着营销场景边界的拓展,越来越多的品牌方开始将阵地由移动端转移到大屏端。OTT及智能硬件营销占中国互联网营销市场规模比例已经从2020年的3.8%升至2022年的7.6%。随着人口红…

【JavaWeb】Day30.SpringBootWeb请求响应——响应

响应 HTTL协议的交互方式:请求响应模式(有请求就有响应)那么Controller程序,除了接收请求外,还可以进行响应。 1.ResponseBody 在我们前面所编写的controller方法中,都已经设置了响应数据。 controller方…

【C语言进阶】- 内存函数

内存函数 1.1 内存函数的使用1.2 memcpy函数的使用1.3 memcpy函数的模拟实现2.1 memmove函数的使用2.2 memmove函数的模拟实现2.3 memcmp函数的使用2.4 memset函数的使用 1.1 内存函数的使用 内存函数就是对内存中的数据进行操作的函数 1.2 memcpy函数的使用 void* memcpy ( …

Docker容器与Serverless的融合:探索《2023腾讯云容器和函数计算技术实践精选集》中的云原生创新案例

Docker容器与Serverless的融合:探索《2023腾讯云容器和函数计算技术实践精选集》中的云原生创新案例 文章目录 Docker容器与Serverless的融合:探索《2023腾讯云容器和函数计算技术实践精选集》中的云原生创新案例一、引言二、《2023腾讯云容器和函数计算…

交通标志识别项目 | 基于Tensorflow+SSD实现道路交通标志识别

项目应用场景 面向智能驾驶或自动驾驶场景道路道路交通标志的识别,在交通标志识别的基础上为下一步的智能决策提供前提 项目效果: 项目细节 > 具体参见项目 README.md (1) 安装依赖 Python3.5、TensorFlow v0.12.0、Pickle、OpenCV-Python、Matplotl…

论文笔记✍GS3D- An Efficient 3D Object Detection Framework for Autonomous Driving

论文笔记✍GS3D: An Efficient 3D Object Detection Framework for Autonomous Driving 📜 Abstract 🔨 主流做法限制 : 我们在自动驾驶场景中提出了一种基于单个 RGB 图像的高效 3D 物体检测框架。我们的工作重点是提取 2D 图像中的底层 3…

AIGC-Stable Diffusion发展及原理总结

目录 一. AIGC介绍 1. 介绍 2. AIGC商业化方向 3. AIGC是技术集合 4. AIGC发展三要素 4.1 数据 4.2 算力 4.3 算法 4.3.1 多模态模型CLIP 4.3.2 图像生成模型 二. Stable Diffusion 稳定扩散模型 1. 介绍 1.1 文生图功能(Txt2Img) 1.2 图生图功能&…

数据结构(六)——图的应用

6.4 图的应用 6.4.1 最小生成树 对于⼀个带权连通⽆向图G (V, E),⽣成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同。设R为G的所有⽣成树的集合,若T为R中边的权值之和最小的生成树,则T称为G的…

计算机视觉新巅峰,微软牛津联合提出MVSplat登顶3D重建

开篇:探索稀疏多视图图像的3D场景重建与新视角合成的挑战 3D场景重建和新视角合成是计算机视觉领域的一项基础挑战,尤其是当输入图像非常稀疏(例如,只有两张)时。尽管利用神经场景表示,例如场景表示网络&a…

代码随想录第27天 | 39. 组合总和、40.组合总和II、131.分割回文串

一、前言 今天的主题还是回溯算法&#xff0c;还是根据那个backtracking模板&#xff0c;但是今天会涉及到去重和一些小细节的问题。 二、组合总和 1、思路&#xff1a; 我一开始的想法就是在for循环转化为&#xff1a; for(int i 0; i < size; i) 但是这个是会陷入一…