HTTP协议的基本概念与理解!

news2024/11/28 16:45:08

一、什么是HTTP协议

HTTP(超文本传输协议)是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

二、状态码 

状态码类别描述
1xx提示信息,表示协议处理未结束
2xx成功,服务器成功处理客户端请求
3xx重定向,资源位置改变,客户端需重新发送请求
4xx客户端错误,服务器无法处理
5xx服务器端错误,服务器在处理请求时内部错误

三、http协议的版本

HTTP/1.0,发送请求,创建一次连接,获得一个web资源,连接断开

HTTP/1.1,发送请求,创建一次连接,获得多个web资源,连接断开

四、Http协议的组成

 Http协议由(Http请求+Http响应)组成,当在浏览器中输入网址访问某个网站时, 你的浏览器会将你的请求封装成一个Http请求发送给服务器站点,服务器接收到请  求后会组织响应数据封装成一个Http响应返回给浏览器。即没有请求就没有响应。

http请求包括:请求行、请求头、请求体

http响应包括:响应行、响应头、响应体 

(1)HTTP请求报文

 HTTP请求报文由3部分组成(请求行+请求头+请求体)

(2)HTTP响应报文

HTTP的响应报文也由三部分组成(响应行+响应头+响应体)

五、HTTP请求方法

HTTP协议中共定义了八种方法(也叫“动作”)来以不同方式操作指定的资源:

(1)GET

向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,例如在Web Application中。其中一个原因是GET可能会被网络蜘蛛等随意访问。

(2)HEAD

GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。

(3)POST

指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。

(4)PUT

指定资源位置上传其最新内容

(5)DELETE

请求服务器删除Request-URI所标识的资源。

(6)TRACE

回显服务器收到的请求,主要用于测试或诊断。

(7)OPTIONS

这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用’*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。

(8)CONNECT

HTTP协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

注意事项

  1. 方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed),当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented)。
  2. HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的。当然,所有的方法支持的实现都应当匹配下述的方法各自的语义定义。此外,除了上述方法,特定的HTTP服务器还能够扩展自定义的方法。例如PATCH(由 RFC 5789 指定的方法)用于将局部修改应用到资源。

六、GET与POST区别 

  1. GET方法提交的数据通过URL传递,而POST方法提交的数据通过HTTP请求的消息体进行传递。

  2. GET方法提交的数据长度有限制,由URL长度限制;而POST方法提交的数据长度没有限制。

  3. GET方法提交的数据可以被缓存,而POST方法不行。

  4. GET方法提交的数据可以被收藏为书签,而POST方法不行。

  5. GET方法提交的数据安全性较低,因为数据在URL中明文传输;而POST方法提交的数据相对安全,因为数据在请求体中加密传输。

  6. GET方法用于获取数据,对服务器没有影响;而POST方法用于提交数据,对服务器会产生影响。

七、Http的优缺点

(1)优点

  1. 简单易用:HTTP设计简单,容易理解和使用,几乎支持所有的操作系统和浏览器。
  2. 兼容性好:HTTP是基于TCP/IP协议的,可以实现跨平台传输,保证了不同操作系统和应用程序之间的兼容性。
  3. 易于扩展:HTTP可以很容易地通过添加新的请求方法、报文头部、状态码等来扩展其功能。
  4. 可缓存性:HTTP支持缓存机制,可以提高数据传输的速度,降低网络带宽的消耗。
  5. 安全性较高:HTTP可以使用SSL/TLS等协议进行加密传输,保证了数据的安全性。

(2)缺点

  1. 传输速度较慢:HTTP使用明文传输,每个请求和响应都需要进行完整的通信过程,而且请求和响应的报文头信息也很多,因此传输速度相对较慢。
  2. 安全性有限:HTTP的安全性相对较差,因为它的通信数据是明文传输的,容易被拦截和窃取。
  3. 可靠性不高:HTTP没有任何机制来处理数据的丢失和重复,也无法保证数据传输的顺序和可靠性。
  4. 只能处理单向请求:HTTP只能处理客户端向服务器的单向请求,而无法实现服务器向客户端的主动推送。
  5. 没有事务支持:HTTP不支持事务机制,无法对执行的多个请求进行原子性操作。

八、HTTP与HTTPS的区别 *

  • HTTP是超文本传输协议,信息是明文传输,存在安全隐患。HTTPS解决了 HTTP的安全隐患,同时在TCP和HTTP网络层之间加入了SSL/TLS安全协议,使得报文加密传输。
  • HTTP通过TCP三次握手进行报文传输,HTTPS在三次握手之后加入SSL/TLS握手,才可进行加密报文传输。
  • HTTP端口号是80,HTTPS端口号是443。
  • HTTPS需要向CA(证书权威机构)申请数字证书,以保证服务器身份可信。
  • 由于HTTPS需要加密和解密数据,传输速度会比HTTP慢一些。

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

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

相关文章

Fedora CoreOS 安装部署详解

《OpenShift 4.x HOL教程汇总》 Fedora CoreOS 的裸机安装方法_fedora coreos 安装-CSDN博客 OpenShift 4 - Fedora CoreOS (1) - 最简安装_fedora core 安装_dawnsky.liu的博客-CSDN博客 OpenShift 和 CoreOS 我们知道 Red Hat Enterprise Linux CoreOS(简称RHCOS&…

SP2-1503|0152:CMD窗口的SQLPLUS命令无法登录Oracle

场景还原 今天有小伙伴把Oracle卸载后重新安装,尝试以下三种方案均无法登录数据库 1.、在使用PLSQL Developer时,输入账号密码机械能登录操作,弹出空白弹框界面 即没有任何提示错误代码 只有一个白板的框 2、利用自身的SQL PLUS登录直接窗…

【SpringBoot集成Redis + Session持久化存储到Redis】

目录 SpringBoot集成Redis 1.添加 redis 依赖 2.配置 redis 3.手动操作 redis Session持久化存储到Redis 1.添加依赖 2.修改redis配置 3.存储和读取String类型的代码 4.存储和读取对象类型的代码 5.序列化细节 SpringBoot集成Redis 1.添加 redis 依赖 …

运算放大器学习笔记

目录 一、基本定理二、基本定义三、负反馈电路四、同向放大电路五、反向放大电路六、差分放大电路 一、基本定理 【电路示意图】 开环放大公式 VOAvo(V-V-) 开环放大倍数(增益)非常大,105 或 106 输入阻抗超级大(可以理解为电…

辅助驾驶功能开发-控制篇(03)-基于PID的请求角度转扭矩算法

1 文档概述 本文档主要描述请求角度转扭矩的功能、性能要求、算法程序设计,后续可作为程序编程和功能及性能测试参考文档。 2 功能要求 转角扭矩管理(SteeringTorqueManager)将方向盘请求转角转换为电机叠加扭矩,进行横向路径跟踪,并与驾驶员方向盘手感交互,实现自适应调整…

2023年五一杯数学建模B题快递需求分析问题求解全过程论文及程序

2023年五一杯数学建模 B题 快递需求分析问题 原题再现: 网络购物作为一种重要的消费方式,带动着快递服务需求飞速增长,为我国经济发展做出了重要贡献。准确地预测快递运输需求数量对于快递公司布局仓库站点、节约存储成本、规划运输线路等具…

红魔8SPro强解BL+完美ROOT权限-刷MIUI14系统-修复指纹丢失/内存等问题

早前我们刷过红魔8pro手机,该手机支持解锁BL刷入MIU14系统,红魔8Pro由于官方并没有修改解锁BL指令,所以我们的解锁BL非常简单,只需要在fastboot下一键完成。随着红魔8SPro的上架,红魔UI6.0的发布,官方解锁指…

【数据仓库设计基础1】关系数据模型理论与数据仓库Inmon方法论

文章目录 一. 关系数据模型中的结构1.关系2.属性3.属性域4.元组5. 关系数据库6.关系表的属性7.关系数据模型中的键 二. 关系完整性1.空值(NULL)2.关系完整性规…

2022/9/13总结

Vue 路由的封装抽离 为了便于维护 ,我们通常需要将路由模块抽离出来 在vue中,如果要写路径,可以写绝对路径 使用 代表从src目录下去寻找,能避免出现很多错误 声明式导航 -- 导航链接 vue-router提供了一个全局组件router-l…

nodejs系列-使用nodejs链接MongoDB数据库问题总结

参考文档 mongodbMongoose 问题1. 不支持preferredcms_db_name、cms_db_collection选项 throw new error_1.MongoParseError(${optionWord} ${Array.from(unsupportedOptions).join(, )} ${isOrAre} not supported);^MongoParseError: options preferredcms_db_name, cms_db…

SVN 和 GIT 命令对比

参考 https://blog.csdn.net/justry_deng/article/details/82259470 # TortoiseSVN打分支、合并分支、切换分支 https://www.huliujia.com/blog/802a64152bbbe877c95c84ef2fdf3857a056b536/ # 版本控制:Git与Svn的命令对应关系 TortoiseSVN打分支、合并分支、切换…

Qt应用开发(基础篇)——菜单栏 QMenuBar

一、前言 QMenuBar类继承于QWidget,该类提供了一个水平菜单栏。 菜单栏使用 QMenuBar菜单栏,顾名思义是菜单QMenu和动作QAction的容器,一般在软件的顶部经常会见到它。菜单栏包含了一系列下拉的菜单,使用addMenu()函数添加QMenu菜…

【ICASSP 2023】ST-MVDNET++论文阅读分析与总结

主要是数据增强的提点方式。并不能带来idea启发,但对模型性能有帮助 Challenge: 少有作品应用一些全局数据增强,利用ST-MVDNet自训练的师生框架,集成了更常见的数据增强,如全局旋转、平移、缩放和翻转。 Contributi…

leetcode 673. 最长递增子序列的个数

2023.9.13 做本题之前先复习一下 最长递增子序列 ,在此基础上还要加个count数组,用于记录当前下标 最长递增子序列的个数。 本题还是有些难度,日后再来二刷。

lv4 嵌入式开发-7 文件IO(概念、打开、关闭、读、写)

目录 1 文件I/O 介绍 2 文件I/O – 文件描述符fd(File Descriptor) 3 文件I/O – open 4 文件I/O – close 5 文件I/O – read 6 文件I/O – write 7 文件IO – lseek 8 标准I/O – 思考和练习 掌握文件描述符的含义 1 文件I/O 介绍 什么是文件…

php 实现stripe支付流程

1.申请账号获取密钥key 2.申请创建商品,创建价格,创建支付, //创建商品 public function create_product(){ $_key self::STRIPE_KEY;$stripe new \Stripe\StripeClient($_key);$arr $stripe->products->create([name > $good…

Arcgis多值提取至点所有波段数值一样

Arcgis多值提取至点所有波段数值一样 问题描述 进行多值提取多波段后的结果,所有波段数值都是一样的。 原因 操作流程问题,输入栅格只选择了一个栅格文件 解决方案 实际上,每个波段都会对应一个栅格文件,要把这些添加进去 这…

【网络编程】深入理解TCP协议二(连接管理机制、WAIT_TIME、滑动窗口、流量控制、拥塞控制)

TCP协议 1.连接管理机制2.再谈WAIT_TIME状态2.1理解WAIT_TIME状态2.2解决TIME_WAIT状态引起的bind失败的方法2.3监听套接字listen第二个参数介绍 3.滑动窗口3.1介绍3.2丢包情况分析 4.流量控制5.拥塞控制5.1介绍5.2慢启动 1.连接管理机制 正常情况下,TCP需要经过三…

淘宝/天猫获取商品销量详情 API 返回值说明

item_get_sales-获取商品销量详情 API测试工具 taobao.item_get_sales 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_…

SEO优化排名的技巧与注意点(百度SEO排名的五大注意点)

关键词排名是指在搜索引擎中,用户搜索相关关键词时,网站出现的顺序。SEO优化是提高网站排名的一种方法。优化关键词排名的目的是提高网站流量和知名度。但是要注意遵循百度SEO排名的规则。 下面介绍一下百度SEO排名的五大注意点和优化关键词的六种方式。…