HTTP协议概述(见过花开就好了,何必在意花落谁家呢)

news2024/12/26 21:22:49

文章目录

  • 一、简介
  • 二、HTTP版本
  • 三、HTTP 方法
  • 四、HTTP状态码
  • 五、HTTP 请求流程分析
    • 1.请求报文
    • 2.响应报文

一、简介

客户端输入域名,经域名解析成IP地址,在与服务端建立数据传输之前,要先建立TCP连接(三次握手),然后向服务端发送http请求,包括请求的方法、内容相应的版本号,服务端收到后进行相应,包括状态码,也就是请求的结果,完成一次客户端的http请求后断开TCP连接(四次挥手),此时服务器处于TCP连接的time_wait状态。

二、HTTP版本

HTTP 已经演化出了很多版本,它们中的大部分都是向下兼容的。

HTTP/0.9:已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息。
HTTP/1.0:这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。
HTTP/1.1:引入持续连接,即TCP连接默认不关闭,可以被多个请求复用,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。(每次http连接都要进行三次握手,产生很多报文,造成资源浪费)
HTTP/2.0:完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求和回应,而且不用按照顺序一一对应。引入头部信息压缩机制。支持服务端推送,允许服务器未经过请求,主动向客户端发送资源(例如打开浏览器时的广告)。

三、HTTP 方法

    HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method)。每条 HTTP 请求报文都包含一个方法, 告诉服务器要执行什么动作,包括:获取一个页面,运行一个网关程序,删除一个文件等。最常用的获取资源的方法是 GET、POST。

在这里插入图片描述

  1. GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。
  2. 与GE不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。
  3. POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。
  4. DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作
    GET和POST比较

GET方法:从指定的服务器上获得数据

  • GET请求能被缓存
  • GET请求会保存在浏览器的浏览纪录里
  • GET请求有长度的限制

主要用于获取数据
查询的字符串会显示在URL后缀中,不安全,比如http://www.test.com/a.php?Id=123

POST方法:提交数据给指定服务器处理

  • POST请求不能被缓存
  • POST请求不会保存在浏览器的浏览纪录里
  • POST请求没有长度限制查询的字符串不会显示 – 在URL中,比较安全

四、HTTP状态码

HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码,当浏览器请求某一URL时,服务器根据处理情况返回相应的处理状态。

通常正常的状态码为2xx,3xx(如200),如果出现异常会返回4xx,5xx(如404)。
在这里插入图片描述
常见状态码
在这里插入图片描述

五、HTTP 请求流程分析

用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。

1.请求报文

  • 请求行:请求行由请求方法、URL以及协议版本三部分组成。
  • 请求头:请求头为请求报文添加了一些附加信息,由“名/值“对组成,每行一对,名和值之间使用冒号分隔。
  • 空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这一行非常重要,必不可少。
  • 请求体:请求体是请求提交的参数,GET方法已经在URL中指明了参数,所以提交时没有数据。osT方法提交的参数在请求体中。

常用的请求头
在这里插入图片描述

2.响应报文

  • 状态行:状态行由协议版本,状态码,状态码描述三部分组成。
  • 响应头:响应头与请求头部类似,为响应报文添加了一些附加信息。
  • 空行:响应头部的最后会有一个空行,表示响应头部结束。
  • 响应体:服务器返回的相应HTML数据,浏览器对其解析后显示页面。

常见响应头
在这里插入图片描述

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

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

相关文章

Day03 02-MySQL多表查询详解

文章目录 第八章 多表查询8.1 多表查询介绍8.1.1 什么是多表查询8.1.2 多表查询基本写法8.1.3 笛卡尔积8.1.4 连接查询条件限制 8.2 连接查询分类8.2.1 内连接8.2.2 外连接8.2.3 全连接8.2.4 自然连接 8.3 子查询8.3.1 子查询简介8.3.2 在where子句中8.3.3 在from子句中8.3.4 在…

是德科技keysight E8257D信号发生器

产品概览 Keysight E8257D (Agilent) PSG 模拟信号发生器提供业界领先的输出功率、电平精度和高达 67 GHz 的相位噪声性能(工作频率可达 70 GHz)。Agilent PSG 模拟信号发生器的高输出功率和卓越的电平精度通常无需使用外部放大器来测试高功率设备&…

国内热门AI智能音箱品牌都采用了哪些功放芯片

音频功放IC是各类音响、耳机等器材不可或缺的一部分;音频功率放大器芯片俗称“扩音器”,是音响系统中最基本的设备,负责将来自信号源的微弱电信号进行放大,以驱动扬声器发声,从而将声音传至我们的听觉系统。 现如今&a…

浅谈电解电容在电路设计中的作用

谈起电解电容我们不得下多了解一下它的作用 1、滤波作用 在电源电路中,整流电路将交流变成脉动的直流,而在整流电路之后接入一个较大容量的电解电容,利用其充放电特性(储能作用),使整流后的脉动直流电压变成相对比较稳定的直流电…

启动页/闪屏/引导页-你还傻傻分不清?

启动页/闪屏/引导页-你还傻傻分不清?(转载) - 知乎 今天就跟大家一起来认识一下开屏三姐妹:启动页/闪屏/引导页。 通常三姐妹出场顺序如下: 下面我们来深入认识一下这三姐妹: 1、启动页 定义&#xff1…

ChatGPT:你真的了解网络安全吗?浅谈网络安全攻击防御进行时之传统的网络安全

ChatGPT:你真的了解网络安全吗?浅谈网络安全攻击防御进行时 传统的网络安全 ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序,是人工智能技术驱动的自…

搭建hadoop集群

搭建Hadoop集群 1,准备环节 Hadoop完全分布式集群式(master/slave)主从架构。 因为Hadoop是由java编写的,所以需要Java的环境支持,作为开发者我们需要安装jdk。 安装jdk的教程http://t.csdn.cn/6qJKg 下载Hadoop的…

spring(不是springboot)集成apllo方案

现在到处都是基于 springboot 的微服务项目。 不巧手头碰到了一个 spring 的项目,打war包直接放到tomcat中启动的。 现在要将apollo集成进来,要求 Access Key 不可以放在properties 配置文件中,要统一使用apollo来管理。 步骤如下&#xff1a…

《计算机网络——自顶向下方法》精炼——3.5.5-3.6.1

学习是劳动,是充满思想的劳动。——乌申斯基 文章目录 TCP流量控制TCP连接管理建立TCP连接拆除TCP连接TCP状态的转换 TCP拥塞控制情况1:两个发送方,一个无限缓存的路由器情况2:两台主机,一台具有有限缓存的路由器情况3…

【源码解析】EasyExcel导入导出源码解析

EasyExcel介绍 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都…

XPCIE1032 — 高速高精,超快交互速率的PCIe EtherCAT实时运动控制卡

产品导读 XPCIE1032是一款基于PCI Express的EtherCAT总线运动控制卡,可选4-16轴运动控制,支持多路高速数字输入输出,可轻松实现多轴同步控制和高速数据传输。 XPCIE1032集成了强大的运动控制功能,结合MotionRT7运动控制实时软核…

PyQt5桌面应用开发(17):中文书评+类结构+QWebEngineView

本文目录 PyQt5桌面应用系列PyQt5学习PyQt5类结构和帮助速查实现与解释最终界面和完整源代码界面完整的代码 总结 PyQt5桌面应用系列 PyQt5桌面应用开发(1):需求分析 PyQt5桌面应用开发(2):事件循环 PyQt5桌…

【中危】Apache Ranger 2.3.0 存在远程代码执行漏洞

漏洞描述 Apache Ranger 是一款用于在 Hadoop 平台及其他平台启用、监控和管理全面的数据安全性的开源框架。Apache Ranger 表达式策略是一种动态访问控制策略,通过自定义表达式来指定更细粒度的访问控制条件。 Apache Ranger 受影响版本中具有管理员权限或策略管…

【微博-自定义Cell-创建子控件 Objective-C语言】

一、自定义Cell 1.既然我们要自定义Cell,这个自定义Cell,属于MVC哪个部分, 这个Cell类,属于MVC哪个部分, Model、Controller、还是View, View吧, 所以说,应该在这里去新建一个类, 在这里去新建一个类,右键,New File,

SpringBoot中使用枚举类、switch、常量类(声明并初始化map)实现类策略者模式,接口返回常量数据

场景 SpringBoot中策略模式工厂模式业务实例(接口传参-枚举类查询策略映射关系-执行不同策略)规避大量if-else: SpringBoot中策略模式工厂模式业务实例(接口传参-枚举类查询策略映射关系-执行不同策略)规避大量if-else_霸道流氓气质的博客-CSDN博客 SpringBootVa…

Python对Excel文件多表对多表之间的匹配(两种不同表头)——之json版

首先Excel文件多表对多表之间的匹配(VLOOKUP),有多种办法, 1:将Excel文件导入Mysql或其他数据库,然后将两种表合并成一张表,接着用数据库匹配 2:将两种表内容,复制粘贴到一起,各自分别保存成一张表&#xf…

伦茨科技带你了解蓝牙App开发的流程

随着移动互联网的快速发展,给我们的生活带来了越来越多的便利,蓝牙App的开发也越来越普及。那么,简单来说,蓝牙App软件的开发就是在手机上为蓝牙物理设备提供具有相关功能的App软件终端,让蓝牙设备更方便的为用户提供服…

appsync unified怎么安装

一、什么是AppSync Unified? AppSync Unified是一款iOS设备上的越狱插件,它可以帮助用户安装和运行未经苹果审核的应用程序和插件。AppSync Unified可以支持iOS 11-14系统,并可以在iPhone和iPad上使用。它的功能主要是允许用户安装和运行不经…

电脑正常开机后几分钟就黑屏一直循环怎么办?

电脑正常开机后几分钟就黑屏一直循环怎么办?有用户在使用电脑的时候,正常去进行电脑的开机,但是开机之后,却发现屏幕变成了黑屏,而且重新启动电脑之后,依然是会出现这样的问题,那么这个情况怎么…

mmdetection3d框架安装与Demo模型运行--基于Ubuntu18.04+Cuda10.1

1.NVIDIA Driver和Cuda安装 在Ubuntu18.04机器上安装好NVIDIA Driver4.18和CUDA10.1,版本号分别为4.18和10.1 查看NVIDIA Driver版本号:nvidia-smi 查看CUDA版本号:nvcc -V 2.安装MiniConda,并创建和管理虚拟环境 2.1 安装Min…