HTTP#1 请求数据格式和响应数据格式

news2024/11/25 14:38:13

一. 简介

  1. 概念

Hyper Text Transfer Protocol (HTTP), 超文本传输协议, 规定了浏览器和服务器之间数据传输的规则

  1. HTTP协议特点

1.基于TCP协议:面向连接,安全

2.基于请求-响应模型的:一次请求对应一次响应

3. HTTP协议是无状态的协议: 对于事务处理没有记忆能力, 每次请求-响应都是独立的.

缺点:多次请求间不能共享数据。Java中使用会话技术(Cookie, Session)来解决这个问题

优点: 速度快

二. HTTP 请求数据格式

  1. 请求数据的三部分

  • 请求行:请求数据的第一行。其中GET表示请求方式,/表示请求资源路径, HTTP/1.1表示协议版本

  • 请求头:第二行开始,格式为key: value形式

  • 请求体: POST请求的最后一部分,存放请求参数

  1. 常见的HTTP请求头

  • Host:表示请求的主机名

  • User-Agent: 浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 ... Chrome/79,IE浏览器的标识类似Mozilla/5.0(Windows NT ..) like Gecko;

  • Accept:表示浏览器能接收的资源类型,如text/*表示文本,image/*表示图片或者*/*表示所有

  • Accept-Language: 表示浏览器偏好的语言,服务器可以据此返回不同语言的网页

  • Accept-Encoding: 表示浏览器可以支持的压缩类型,例如gzip, deflate等

  1. GET请求和POST请求的区别

  • GET请求请求参数在请求行中, 没有请求体; POST请求请求参数在请求体中

  • GET请求请求参数有大小限制, POST没有

三. HTTP 响应数据格式

  1. 响应数据的三部分

  • 响应行:响应数据的第一行, 其中HTTP/1.1表示协议版本, 200表示响应状态码, OK表示状态码描述

  • 响应头:第二行开始,格式为key : value形式

  • 响应体: 最后一部分, 存放响应数据

  1. 常见的HTTP响应头

  • Content-Type:表示该响应内容的类型,例如text/html,image/jpeg

  • Content-Length: 表示该响应内容的长度(字节数);

  • Content-Encoding: 表示该响应压缩算法,例如gzip;

  • Cache-Control: 指示客户端应如何缓存,例如max-age=300表示可以最多缓存300秒

  1. 状态码大类

  • 状态码分类

  • 1xx 响应中-->临时状态码,表示请求已经接受, 告诉客户端应该继续请求或者如果它已经完成则忽略它

  • 2xx 成功-->表示请求已经被成功接收,处理已完成

  • 3xx 重定向-->重定向到其它地方: 它让客户端再发起一个请求以完成整个处理。

  • 4xx 客户端错误-->处理发生错误,责任在客户端,如: 客户端的请求一个不存在的资源,客户端未被授权,禁止访问等

  • 5xx 服务器端错误-->处理发生错误,责任在服务端,如: 服务端抛出异常,路由出错,HTTP版本不支持等

  1. 常见的响应状态码

(上图来自黑马程序员)

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

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

相关文章

JAVA中公平锁和非公平锁有什么区别?

从公平的角度来说,Java 中的锁总共可分为两类:公平锁和非公平锁。但公平锁和非公平锁有哪些区别? 正文 公平锁:每个线程获取锁的顺序是按照线程访问锁的先后顺序获取的,最前面的线程总是最先获取到锁。非公平锁:每个线程获取锁的顺序是随机的,并不会遵循先来先得的规则…

深眸科技|机器视觉提升制造性能,焕发传统企业智造新活力!

随着机器视觉技术的成熟与发展,其在工业制造中得到越来越广泛的应用。机器视觉在工业制造领域的应用朝着智能识别、智能检测、智能测量以及智能互联的完整智能体系方向发展。此外,快速变化的市场需求,不断涌入行业的竞争对手,让传…

操作系统真相还原_第8章:内存管理系统

文章目录8.1 Makefile 简介makefile基本语法make参数伪目标自定义变量与系统变量隐含规则自动化变量与模式规则8.2 实现assert断言操作系统代码编译、链接并写入磁盘启动bochs执行物理内存使用情况8.3 实现字符串操作函数操作系统代码编译、链接并写入磁盘启动bochs执行物理内存…

C++基础(一)—— C++概述、C++对C的扩展(作用域、struct类型、引用、内联函数、函数默认参数、函数占位参数、函数重载)

1. C概述1.1 c简介“c”中的来自于c语言中的递增运算符,该运算符将变量加1。c起初也叫”c withclsss”.通过名称表明,c是对C的扩展,因此c是c语言的超集,这意味着任何有效的c程序都是有效的c程序。c程序可以使用已有的c程序库。为什…

Halcon数据结构

1.HTuple类型 1、既可以表示的类型有int,double、float、string,既可以表示单个值; 2、可以是容器; 3、可以是数组,数组遍历时需要有下标,如:变量名称[下标] 图像数据类型 Byte:8…

药房管理系统;药库管理系统

第一,主要功能:  本系统集日常销售、药品进销存、会员积分、GSP管理等药店所需的所有功能于一体,实现店铺管理的全部自动化。第二、新功能:  增加了“按功能查询药品”的功能,使软件用户可以根据客户的症状推荐合适…

【进阶】2、搭建K8s集群【v1.23】

[toc] 一、安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统 CentOS7.x-86_x64硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多集群中所有机器之间网络…

编写SPI_Master驱动程序_老方法

编写SPI_Master驱动程序 文章目录编写SPI_Master驱动程序参考资料:一、 SPI驱动框架1.1 总体框架1.2 怎么编写SPI_Master驱动1.2.1 编写设备树1.2.2 编写驱动程序二、 编写程序2.1 数据传输流程2.2 写代码致谢参考资料: 内核头文件:include\…

数字IC手撕代码--联发科(总线访问仲裁)

题目描述当A、B两组的信号请求访问某个模块时,为了保证正确的访问,需要对这些信号进行仲裁。请用Verilog实现一个仲裁器,对两组请求信号进行仲后,要求:协议如图所示,请求方发送req(request&…

数据推荐 | 人体行为识别数据集

人体行为识别任务旨在通过对人体姿态进行分析,识别出人体的具体动作,为人体行为预测、突发事件处理、智能健身、智能看护等领域提供技术支持。 图片 图片 人体行为识别数据标注方式 人体行为数据通用的标注方式包括人体关键点标注和动作标签标注&#…

Spring Boot 整合分布式缓存 Memcached

Memcached是一个开源、高性能,将数据分布于内存中并使用key-value存储结构的缓存系统。它通过在内存中缓存数据来减少向数据库的频繁访问连接的次数,可以提高动态、数据库驱动之类网站的运行速度。 Memcached在使用是比较简单的,在操作上基本…

经典面试题:“从输入URL到展示出页面“这个过程发生了什么?

目录 🐳今日良言:在逆境中善待自己 🐇一、输入网址(URL) 🐇二、域名查询(DNS解析) 🐇三、建立TCP连接 🐇四、发送HTTP/HTTPS请求 🐇五、服务器响应请求 🐇六、浏览器解析渲染页面 &…

Simple_SSTI_2

Simple_SSTI_2前言一、python类的内置属性二、解题步骤1.查看当前目录2. 打开flag文件得到flag前言 要想做到这个题,先要了解SSTI_2模板注入详解 一、python类的内置属性 先看如下一段代码: class Restaurant:"""类"""def…

存储的本质-学习笔记

1 经典案例 1.1 数据的流动 一条用户注册数据流动到后端服务器,持久化保存到数据库中。 1.2 数据的持久化 校验数据的合法性修改内存写入存储介质2 存储&数据库简介 2.1 存储系统特点 性能敏感、容易受硬件影响、存储系统代码既“简单”又“复杂”。 2.2 数…

从0到1实现单机记账APP原理与细节uniApp内含源码 (二)

单机记账APP演示及源码 具体演示如下面视频所示。免费下载地址:点击进入 预览APP下载地址:http://8.142.10.182:8888/down/aWHWeGaEQE2W.apk (带宽很小所以下载速度慢) 由于资源已经通过了,页面的样式这里就不写了&am…

蓝桥杯单片机组省赛十二届第一场(关于矩阵,温度ds18b20,时间ds1302的学习,以及继电器等外设的综合利用)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、该题目如下二、使用步骤1.矩阵键盘实现2.温度传感器ds18b20的实现总结提示:以下是本篇文章正文内容,下面案例可供参考 一、该题目如下 分…

使用Containerd搭建K8s集群【v1.25】

[toc] 一、安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统 CentOS7.x-86_x64硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多集群中所有机器之间网络互通可以访问外网,需要拉取镜像禁止swap分区二、准备环境 角色IP…

重磅新品 / 酷炫展品 / 强大生态,广和通玩转 MWC Barcelona 2023

2月27日,2023世界移动通信大会(MWC Barcelona 2023)在西班牙巴塞罗那正式开幕。全球知名移动运营商、设备制造商、技术提供商、物联网企业齐聚一堂,以领先的技术、创新的场景、前瞻的洞察向全行业输送最新鲜的行业观点。作为全球领…

python的opencv操作记录13——区域生长及分水岭算法

文章目录图像区域基本算法——形态学运算腐蚀与膨胀开运算与闭运算opencv中的形态学运算距离计算——distanceTransform函数连通域连通的定义计算连通域——connectedComponents连通域实验基于区域的分割区域生长算法自定义一个最简单区域生长算法实现区域分割一般区域分割open…

解决vscode无法自动更新

一.前言 要在vscode里面安装插件,被提示版本不匹配,然后得更新,然后我发现我的'帮助'菜单栏下没有检查更新,然后我去&…