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

一、什么是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.rhkb.cn/news/132209.html

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

相关文章

【RocketMQ】消息的拉取

在上一讲中,介绍了消息的存储,生产者向Broker发送消息之后,数据会写入到CommitLog中,这一讲,就来看一下消费者是如何从Broker拉取消息的。 RocketMQ消息的消费以组为单位,有两种消费模式: 广播…

实时显示当前文件夹下的文件大小,shell脚本实现

图片来源于网络,如果侵权请联系博主删除! 需求: 写一个shell终端命令,实时显示当前文件夹下的文件大小 实现: 您可以使用以下的Shell脚本命令来实时显示当前文件夹下的文件大小: while true; docleardu …

百度飞浆OCR识别表格入门python实践

1. 百度飞桨(PaddlePaddle) 百度飞桨(PaddlePaddle)是百度推出的一款深度学习平台,旨在为开发者提供强大的深度学习框架和工具。飞桨提供了包括OCR(光学字符识别)在内的多种功能,可…

《动手学深度学习 Pytorch版》 4.10 实战Kaggle比赛:预测比赛

4.10.1 下载和缓存数据集 import hashlib import os import tarfile import zipfile import requests#save DATA_HUB dict() DATA_URL http://d2l-data.s3-accelerate.amazonaws.com/def download(name, cache_diros.path.join(.., data)): #save"""下载一个…

【chromium】windows 获取源码到本地

从github的chromium 镜像git clone 到2.5G失败了官方说不能,要去 windows_build_instructions vs2017和19都是32位的 vs2022是x64的 vs2022_install You may also have to set variable vs2022_install to your installation path of Visual Studio 2022,

自定义Dynamics 365实施和发布业务解决方案 3. 开箱即用自定义

在本章中,您将开始开发SBMA会员应用程序。在开发的最初阶段,主要关注开箱即用的定制。在第2章中,我们讨论了如何创建基本解决方案的细节,在本章中,将创建作为解决方案补丁的基本自定义,并展示将解决方案添加到源代码管理和目标环境的步骤。 表单自定义 若要开始表单自定…

宠物行业如何进行软文营销

如今,宠物已经成为了人们生活中不可或缺的一部分,大众对于萌宠的喜爱与日俱增,随着“萌宠经济”升温,越来越多的商机开始出现,伴随着宠物市场竞争的日益激烈,宠物行业的营销光靠硬广告很难吸引受众&#xf…

使用内网端口映射方案,轻松实现U8用友ERP的本地部署异地远程访问——“cpolar内网穿透”

文章目录 前言1. 服务器本机安装U8并调试设置2. 用友U8借助cpolar实现企业远程办公2.1 在被控端电脑上,点击开始菜单栏,打开设置——系统2.2 找到远程桌面2.3 启用远程桌面 3. 安装cpolar内网穿透3.1 注册cpolar账号3.2 下载cpolar客户端 4. 获取远程桌面…

小美的数组操作2---牛客周赛 Round 11

注意给a[ 0 ]赋一个最小值 #include<bits/stdc.h> using namespace std; typedef long long ll; const int N1e55; int t,n,m,a[N],cnt[N]; int main(){scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);for(int i1;i<n;i){scanf(&q…

Mann-Kendall 检验

一、M-K 趋势检验 Mann-Kendall 突变检验是一种非参数的假设检验方法&#xff0c;用于检验时间序列数据中的趋势性变化。该检验方法通过比较每个数据点与其之前数据点的大小&#xff0c;来检测时间序列数据中的单调趋势&#xff08;上升、下降或没有趋势&#xff09;。具体来说…

word转PDF文件变小,图片模糊

word论文29M&#xff0c;文件——另存为——只有1.5M左右&#xff0c;图片压缩严重&#xff0c;图片看不清。 word中很多大图&#xff0c;5M一张的图&#xff0c;所以word很大。 找了很多方法&#xff0c;转换后都在2M左右&#xff0c;勉强可以。 直到找到了这个&#xff0c…

Java-集合类

集合 Java集合是Java中用于存储和管理一组对象的工具。Java集合提供了相应的方法&#xff0c;用于用户对集合内数据的操作。 Java集合类提供了许多不同的数据结构&#xff0c;如列表、队列、栈、集合和映射&#xff0c;以满足不同类型的编程需求。 程序中如何存储大批量同类型…

C 编译原理

C 编译原理 目录 C 编译原理引入GCC 工具链介绍C运行库 编译准备工作编译过程1.预处理2.编译3.汇编4.链接 分析ELF文件1.ELF文件的段2.反汇编ELF C语言编译过程 - 摘录编译预处理编译、优化汇编链接过程 引入 大家肯定都知道计算机程序设计语言通常分为机器语言、汇编语言和高…

(2023 最新版)IntelliJ IDEA 下载安装及配置教程

IntelliJ IDEA下载安装教程&#xff08;图解&#xff09; IntelliJ IDEA 简称 IDEA&#xff0c;由 JetBrains 公司开发&#xff0c;是 Java 编程语言开发的集成环境&#xff0c;具有美观&#xff0c;高效等众多特点。在智能代码助手、代码自动提示、重构、J2EE 支持、各类版本…

深度学习面试八股文(2023.9.06)

一、优化器 1、SGD是什么&#xff1f; 批梯度下降&#xff08;Batch gradient descent&#xff09;&#xff1a;遍历全部数据集算一次损失函数&#xff0c;计算量开销大&#xff0c;计算速度慢&#xff0c;不支持在线学习。随机梯度下降&#xff08;Stochastic gradient desc…

计算机竞赛 机器视觉opencv答题卡识别系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 答题卡识别系统 - opencv python 图像识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分…

电压放大器的应用范围有哪些

电压放大器是一种常见的电子设备&#xff0c;用于将输入信号的电压放大到更高的水平。它在各个领域中具有广泛的应用范围。本文将详细介绍电压放大器的应用。 音频放大器&#xff1a; 电压放大器在音频系统中起着重要作用&#xff0c;用于将来自音源&#xff08;如CD播放器、MP…

清华智能体宇宙火了;主流大语言模型的技术原理细节

&#x1f989; AI新闻 &#x1f680; 清华智能体宇宙火了 摘要&#xff1a;清华大学联合北邮、微信团队推出了AgentVerse&#xff0c;这是一个可以轻松模拟多智能体宇宙的环境。它专为大语言模型开发&#xff0c;智能体可以利用LLM能力完成任务。AgentVerse提供了几个示例环境…

Linux使用正则匹配配置文件有效内容

cat /etc/libvirt/libvirtd.conf|egrep -v "^#|^$" 这个正则表达式是在使用grep命令进行文本匹配过滤。下面是对该正则表达式的解释&#xff1a; ^#&#xff1a;^表示行的开头&#xff0c;#表示一个井号符号。这个部分匹配以井号开头的行。^$&#xff1a;$表示行的结…

聚精品,通全球 2024中国(杭州)国际电商物流包装产业展览会四月隆重开幕

2024中国&#xff08;杭州&#xff09;国际电商物流包装产业展览会 2024年4月12-14日 | 杭州国际博览中心 同期举办&#xff1a;2024长三角快递物流供应链与技术装备展览会&#xff08;杭州&#xff09; 2024中国&#xff08;杭州&#xff09;国际数字物流技术与应用展览会 展会…