熟练掌握Http协议

devtools/2025/2/6 21:05:03/
http://www.w3.org/2000/svg" style="display: none;">

目录

  • 基本概念
  • 请求数据
    • Get请求方式和Post请求方式
  • 响应数据
    • 响应状态码

基本概念

Http协议全称超文本传输协议(HyperText Transfer Protocol),是网络通信中应用层的协议,规定了浏览器和web服务器数据传输的格式和规则
https://i-blog.csdnimg.cn/direct/e51a5c3d76234e0b8123ada5eddf8598.png" alt="在这里插入图片描述" />
Http应用层协议具有以下特点:

  • 面向tcp传输层协议,可靠通信
  • 一次请求数据返回一次响应数据
  • Http协议是无状态的协议,每次请求-相应都是独立的,多次请求间不能共享数据,java提供了cookie和session会话技术解决了这个问题,实现了多个请求间共享数据

请求数据

请求数据是浏览器在分析处理完用户动作后 根据web服务器ip地址和端口号 委托操作系统tcp协议栈向服务器发送的数据格式;
https://i-blog.csdnimg.cn/direct/1ce21298012c4a0eaaac8611f549b0b6.png" alt="在这里插入图片描述" />
请求数据包含三部分内容:请求行、请求头、请求体;

  1. 请求行:请求数据的第一行;包含请求方法(get,post等)、请求资源路径、http协议版本;

  2. 请求头:请求数据第二行开始,格式是key:value格式
    https://i-blog.csdnimg.cn/direct/3ba804249d4b44018d70c4fe4da9f0f8.png" alt="在这里插入图片描述" />

  3. 请求体:post请求方式的最后一部分,存放请求参数

Get请求方式和Post请求方式

Get请求方式和Post请求方式的区别是请求参数存放的位置,Get请求方式请求参数放在请求行访问资源路径后面;

GET /api/users?username=superbaby&password=123456

Post请求方式请求参数放在请求体上;这样web服务器在接收请求数据后,根据请求方法是get或者post就知道从哪个位置获取请求参数。
https://i-blog.csdnimg.cn/direct/5a0043120934490dae739439b11a0b6e.png" alt="在这里插入图片描述" />

响应数据

响应数据是web服务器在接收并解析浏览器发送的请求数据后,委托tcp协议栈向浏览器发送的数据格式,浏览器在解析响应数据后,将效果展示在浏览器屏幕上;
https://i-blog.csdnimg.cn/direct/7ec00c10e900406c83ef5b8818a24d08.png" alt="在这里插入图片描述" />

响应数据包含三部分内容:响应行、响应头、响应体;

  1. 响应行:响应数据的第一行;包含http协议版本、状态码、状态码英文描述;

  2. 响应头:响应数据第二行开始,格式是key:value格式

    https://i-blog.csdnimg.cn/direct/87d9a59c1122461f9f6fbb606fa20d22.png" alt="在这里插入图片描述" />

  3. 响应体:响应数据的最后部分,存放供浏览器解析的数据

响应状态码

响应状态码是web服务器通知浏览器此次访问成功与否,分为5大类
最重要的三个状态码:200(访问成功)、404(访问资源不存在)、500(web服务器内部错误)
https://i-blog.csdnimg.cn/direct/5acb0c75daa14aa4b1870cbb81297acd.png" alt="在这里插入图片描述" />


http://www.ppmy.cn/devtools/156619.html

相关文章

【开源免费】基于SpringBoot+Vue.JS美食推荐商城(JAVA毕业设计)

本文项目编号 T 166 ,文末自助获取源码 \color{red}{T166,文末自助获取源码} T166,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

如何开发一个大语言模型,开发流程及需要的专业知识

开发大型语言模型(LLM)是一个复杂且资源密集的过程,涉及多个阶段和跨学科知识。以下是详细的开发流程和所需专业知识指南: 一、开发流程 1. 需求分析与规划 目标定义:明确模型用途(如对话、翻译、代码生成…

Kafka SSL(TLS)安全协议

文章目录 Kafka SSL(TLS)安全协议1. Kafka SSL 的作用1.1 数据加密1.2 身份认证1.3 数据完整性1.4 防止中间人攻击1.5 确保安全的分布式环境1.6 防止拒绝服务(DoS)攻击 2. Kafka SSL 配置步骤(1)创建 SSL 证…

FPGA|例化生成的PLL功能IP核

1、例化上一篇文章中调用的IP核,新建文件PLL_test.v 2、代码如图 timescale 1ns / 1ps module PLL_test(input clk,input rst_n,output clkout0,output clkout1,output clkout2,output clkout3,output clkout4);wire locked;PLL pll_inst(.inclk0(clk),.c0(clkout0)…

输入类控件和多元素控件【QT】

文章目录 输入类控件QLineEdit Text EditCombo BoxSpin BoxDialSlider多元素控件QListWidget TableWidetTreeWidgetQGroupBoxTab Widget# QVBoxLayout# QHBoxLayoutQGridLayoutQFormLayout 输入类控件 QLineEdit 例如: 实现一个用户输入姓名 密码 电话 性别 的功能…

SQL高级技巧:高效获取两表交集数据的三种方法(JOIN、IN、EXISTS)

一、引言 在SQL开发中,获取两表交集数据是常见的需求,而实现这一目标的主要方法有三种:JOIN、IN 和 EXISTS。虽然它们都能完成任务,但语法、性能和应用场景却各有不同。 我们将通过对比分析这三种方法的区别与优缺点&#xff0c…

基于最近邻数据进行分类

人工智能例子汇总:AI常见的算法和例子-CSDN博客 完整代码: import torch import numpy as np from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt# 生成一个简单的数据…

Linux:文件系统(软硬链接)

目录 inode ext2文件系统 Block Group 超级块(Super Block) GDT(Group Descriptor Table) 块位图(Block Bitmap) inode位图(Inode Bitmap) i节点表(inode Tabl…