2.5 - 网络协议 - HTTP协议工作原理,报文格式,抓包实战

news2024/11/27 8:39:51

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

HTTP协议

  • 1、HTTP协议工作原理
  • 2、HTTP协议报文
  • 3、HTTP请求方法
  • 4、HTTP响应状态码
  • 5、HTTP请求头

HTTP(Hypertext Transfer Protocol)是 「超文本传输协议」,基于B/S架构(Browser/Server,浏览器/服务器模式)通信,用户通过浏览器访问Web服务器产生的网页(文本、图片、视频、音乐等),与服务器进行数据交互。

1、HTTP协议工作原理

HTTP协议是基于TCP实现的请求响应-响应协议,工作分为四个过程:

  1. 三次握手「建立TCP连接」
  2. 客户端发送「请求」
  3. 服务端发送「响应」
  4. 四次挥手「关闭TCP连接」

工作过程从HTTP的数据包中可以很好地体现出来

在这里插入图片描述

协议本质上就是一个约定俗称的规范,而HTTP协议就规定了浏览器需要如何从服务器请求Web页面、服务器需要如何把Web页面传送给客户端。

  • 浏览器向服务器请求Web页面需要使用「HTTP请求报文」
  • 服务器吧Web页面传送给客户端需要使用「HTTP响应报文」

2、HTTP协议报文

在这里插入图片描述

  • 请求报文分为三个部分:请求行、请求头、请求体
  • 响应报文分为四个部分:状态行、响应头、响应空行、响应体

HTTP请求报文的数据包如下

在这里插入图片描述

  • 请求行:【固定格式】包含请求方法、请求URL、HTTP版本
  • 请求头:包含请求的客户端的信息,一行一个请求头
  • 请求体:请求的数据部分

HTTP响应报文的数据包如下

在这里插入图片描述

  • 状态行:【固定格式】包含版本和响应状态码、状态信息
  • 响应头:包含响应的服务器的资源信息,一行一个响应头
  • 响应空行:用来间隔/区分响应头和响应体
  • 响应体:服务器响应的内容,通常是一个HTML页面的代码或者给客户端的数据。

3、HTTP请求方法

在这里插入图片描述

HTTP请求报文的 Request Method表示请求方法(面试常问),不同的方法可以实现不同的获取数据的操作

  • GET:获取数据
  • POST:传递数据,常用于表单提交或上传文件
  • PUT:获取文件资源
  • HEAD:获取报文首部
  • DELETE:删除文件
  • OPTIONS:询问支持的方法(HTTP服务器并不是所有方法都必须实现,但起码要实现GETHEAD方法)
  • TRACE:回显服务器收到的请求,常用于测试
  • CONNECT:要求用隧道协议连接代理,比如SSL加密
  • HTTP服务器扩展其他自定义的方法

GET和POST请求的区别主要体现在三个方面,首先是作用,两个请求的设计理念就不一样:

  • get主要用在查询操作,用来获取资源。
  • post主要用在增删改操作,用来传递数据。

然后是安全性:

  • get请求的参数拼接在url后面,受到url的长度限制,但前端直接就能看到参数的内容,不安全。
  • post请求的参数放在请求体里面,没有大小限制,前端不能直接看到参数的内容,比get要安全一些。

还有缓存和刷新机制:

  • get请求可以被浏览器缓存,并且刷新没有影响。比如同样的请求,第一次请求是200,第二次请求就是304,直接查缓存。
  • post请求不能缓存,每次都会请求到服务器才能响应;如果刷新的话,会重新提交一次数据。

4、HTTP响应状态码

在这里插入图片描述

HTTP响应报文的 Status Code 表示响应状态码,用来判断请求成功/失败的原因。

常见的响应状态码:

  • 200 OK:请求成功
  • 304 Not Modified:访问了缓存,短时间重复访问同一个页面,会直接去缓存,而不再请求服务器。
  • 403 Forbidden:没有权限,请求的页面被禁止访问
  • 404 Not Found:路径错误,服务器找不到被请求的页面
  • 500 Internal Server Error:后端代码报错了,请求未完成。服务器遇到不可预知的情况。

完整的状态码如下:

1xx 请求信息

在这里插入图片描述
2xx 请求成功

在这里插入图片描述
3xx 请求被重定向

在这里插入图片描述
4xx 客户端错误

在这里插入图片描述

5xx 服务器错误

在这里插入图片描述

5、HTTP请求头

HTTP请求的中间部分就是请求头,一行一个,每个请求头的字段都有不同的作用,按需使用。

在这里插入图片描述

  • Host:服务器的IP+端口,用来寻找目标服务器。
  • Content-Length:请求体的长度,没有请求体就没有这个字段。
  • Content-Type:请求体的格式,接收方按照这个格式解析。
  • User-Agent:客户端的浏览器版本,接收方按照这个调整返回的内容。
  • Referer:源URL,接收方可以验证请求的来源,防止恶意请求。
  • Cookie:存储在浏览器本地的一些数据,比如账号密码可以用来免登陆。
  • Accept:浏览器可接受的MIME类型
  • Connection:是否需要长链接,Keep-Alive:使用,colse:关闭。
  • X-Forwarded-For:源IP,接收方可以追溯请求的源IP,防止恶意请求。

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

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

相关文章

NX二次开发UF_CURVE_ask_offset_direction_2 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_offset_direction_2 Defined in: uf_curve.h int UF_CURVE_ask_offset_direction_2(UF_STRING_p_t input_curves, double offset_direction_vector [ 3 ] , double dra…

如何使用OpenCV转换图像并创建视频,实现Ken Burns特效

一、Ken Burns特效 当使用OpenCV时,最常使用的是图像,但是我们也可以多个图像创建动画,通过引入时间轴更容易可视化。 Ken Burns特效这是一种以电影制片人肯伯恩斯 (Ken Burns) 命名的平移和缩放技术,Ken Burns 效果不是在屏幕上显示大型静态照片,而是裁剪细节,然后平移图…

美食网站基本结构

代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>美食网站首页</title> <link rel"stylesheet" href"https://cdn.staticfile.org/layui/2.5.6/css/layui.min.c…

博物馆线上导览系统的设计与实现-计算机毕业设计源码64574

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

Couchdb 权限绕过漏洞复现(CVE-2017-12635)

Couchdb 权限绕过漏洞复现&#xff08;CVE-2017-12635&#xff09; ​​ 开启环境给了三个端口号&#xff0c;不知道哪个是正常的&#xff0c;最后试出来52226端口正常。 登录URL&#xff1a;http://192.168.91.129/_utils/# 来到了登录页面 ​​ 用postman发送PUT方法的…

极客时间:使用本地小型语言模型运行网页浏览器应用程序。

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

你好python!——python中的函数与数据容器

一、函数的定义 1.1函数定义语法 1.2函数的参数 1.2.1参数的传入 python中函数的参数和C语言函数的参数其实一样&#xff0c;他们都是形参&#xff0c;是实参的一份临时拷贝。我们来定义一个加法函数来看看函数的参数传入&#xff1a; 参数之间使用逗号进行分隔。 1.2.2函…

在线知识库管理平台zyplayer-doc

什么是 zyplayer-doc &#xff1f; zyplayer-doc 是一款适合团队和个人私有化部署使用的知识库、笔记、WIKI 文档管理工具&#xff0c;同时还包含数据库管理、Api 接口管理等模块。 个人用户可免费下载部署使用&#xff0c;部署后也可以购买商业授权进行激活。 安装 建数据库…

elasticsearch 实战

文章目录 项目介绍导入项目 Elasticsearch Java API 查询文档快速入门发起查询请求解析响应完整代码 match查询精确查询布尔查询排序、分页高亮高亮请求构建高亮结果解析 项目介绍 本项目是一个由spring boot 3.0.2在gradle 8.4和java 21的环境下搭建的elasticsearch项目demo&…

机器学习的复习笔记3-回归的细谈

一、回归的细分 机器学习中的回归问题是一种用于预测连续型输出变量的任务。回归问题的类型和特点如下&#xff1a; 总之&#xff0c;支持向量回归是一种用于解决回归问题的机器学习方法&#xff0c;通过寻找支持向量和引入容忍度范围来建立回归模型&#xff0c;能够处理非线性…

【腾讯云 HAI域探秘】基于高性能应用服务器HAI部署的 ChatGLM2-6B模型,我开发了AI办公助手,公司行政小姐姐用了都说好!

目录 前言 一、腾讯云HAI介绍&#xff1a; 1、即插即用 轻松上手 2、横向对比 青出于蓝 3、多种高性能应用部署场景 二、腾讯云HAI一键部署并使用ChatGLM2-6B快速实现开发者所需的相关API服务 1、登录 高性能应用服务 HAI 控制台 2、点击 新建 选择 AI模型&#xff0c;…

【GD32307E-START】RT-Thread移植测试

【GD32307E-START】RT-Thread移植测试 1. 软硬件平台 GD32F307E-START Board开发板MDK-ARM KeilGCC Makefile 2. 物联网RTOS—RT-Thread RT-Thread RT-Thread诞生于2006年&#xff0c;是一款以开源、中立、社区化发展起来的物联网操作系统。 RT-Thread主要采用 C 语言编写…

RH2288H V3服务器使用ISO安装系统

1.配置和服务器相同网段地址&#xff0c;RH2288H V3服务器bmc管理网口默认IP是192.168.2.100/24&#xff0c;默认用户root&#xff0c;默认Huawei12#$&#xff0c;网线连接BMC口&#xff0c;登录。默认密码可以在开机时按del键进入配置页面修改 2.配置raid&#xff0c;生产环境…

SpringCloud 微服务全栈体系(十八)

第十一章 分布式搜索引擎 elasticsearch 八、RestClient 查询文档 文档的查询同样适用 RestHighLevelClient 对象&#xff0c;基本步骤包括&#xff1a; 准备 Request 对象准备请求参数发起请求解析响应 1. 快速入门 以 match_all 查询为例 1.1 发起查询请求 代码解读&…

基于Java SSM框架+Vue实现药品销售进销存网站项目【项目源码+论文说明】

基于java的SSM框架Vue实现药品销售进销存网站演示 摘要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于药品管理系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了…

岂曰无衣 汉家衣裳再现锦绣美景

——福州第五届1122汉服节出行盛大开幕11月25日下午&#xff0c;闽江之心海丝广场&#xff0c;一场盛大的汉服文化节——福州第五届1122汉服节出行活动在这里隆重开幕。这个被誉为“穿在身上的历史”的传统文化&#xff0c;在这片古老而神秘的土地上焕发出新的生机与活力。据了…

Win10电脑用U盘重装系统的步骤

在Win10电脑中&#xff0c;用户遇到了无法解决的系统问题&#xff0c;用户这时候就可以考虑重装Win10系统&#xff0c;这样即可轻松解决问题&#xff0c;从而满足自己的操作需求。接下来小编给大家详细介绍关于Win10电脑中用U盘重装系统的教程步骤。 准备工作 1. 一台正常联网可…

group by

引入 日常开发中&#xff0c;我们经常会使用到group by。你是否知道group by的工作原理呢&#xff1f;group by和having有什么区别呢&#xff1f;group by的优化思路是怎样的呢&#xff1f;使用group by有哪些需要注意的问题呢&#xff1f; 使用group by的简单例子group by 工…

火力发电厂电气一次部分初步设计(论文+图纸)

1 原始资料 设计电厂为中型是凝汽式发电厂&#xff0c;共4台发电机组&#xff0c;2台75MW机组&#xff0c;2台50MW机组&#xff0c;总的装机容量为250MW&#xff0c;占系统容量的比例为&#xff1a; 250/(3500250)100%6.7%<15%&#xff0c;未超过电力系统的检修备用容量和…

深入理解JMM以及并发三大特性(2)

书接上文 文章目录 (1)CPU高速缓存(2)缓冲一致性(3)总线仲裁机制(4)总线窥探(Bus Snooping) 前面介绍到实现可见性&#xff0c;底层常用的一种方案是使用内存屏障&#xff0c;而内存屏障在汇编层面又是使用lock前缀指令来实现的&#xff0c;所以这里来介绍一下lock前缀指令。 …