HTTP简介(GET,POST)

news2024/9/30 11:29:42

HTTP简介(GET,POST)

简介

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

演示

在这里插入图片描述

HTTP协议的特点

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

    TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在数据传输方面更安全。

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

    请求和响应是一一对应关系

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

    无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。这种特性有优点也有缺点,

    • 缺点:多次请求间不能共享数据
    • 优点:速度快

请求之间无法共享数据会引发的问题,如:

  • 京东购物,加入购物车去购物车结算是两次请求,
  • HTTP协议的无状态特性,加入购物车请求响应结束后,并未记录加入购物车是何商品
  • 发起去购物车结算的请求后,因为无法获取哪些商品加入了购物车,会导致此次请求无法正确展示数据
    上述问题的解决办法需要利用到后面的Java里面的会话技术解决(Cookie,Session)

数据的请求格式

get形式

数据由三部分构成:请求头请求行请求体

在这里插入图片描述

  • 请求行: HTTP请求中的第一行数据,请求行包含三块内容,分别是 GET[请求方式] /[请求URL路径] HTTP/1.1[HTTP协议及版本]

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

    请求头中会包含若干个属性,常见的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等。
    

POST形式

POST请求体的请求的最后一部分,就是存储请求参数,所以我们一般填写的表单上交的方式就是POST方式。
在这里插入图片描述

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

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

相关文章

[附源码]Python计算机毕业设计SSM基于Java家庭财务管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

LeetCode 297. 二叉树的序列化与反序列化

今天早上睡起来刷了这么一道题,二叉树的序列化和反序列化 大概意思就是给你一个二叉树,把他转成一个字符串,中间的自定义规则由你定,再根据这个字符串去还原这个二叉树,这道题的话思路不难,写起来有的细节…

【云原生 | Kubernetes 实战】13、K8s 常见的存储方案及具体应用场景分析(上)

目录 K8s 持久化存储 一、k8s 持久化存储:emptyDir 二、k8s 持久化存储:hostPath 三、k8s 持久化存储:nfs 3.1 搭建 nfs 服务 3.2 创建Pod,挂载 NFS 共享出来的目录 3.3 测试 pod 挂载 nfs 是否成功 K8s 持久化存储 在 k8s…

[附源码]Nodejs计算机毕业设计基于框架的在线问答平台Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

[附源码]Python计算机毕业设计公租房管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

ASPICE详细介绍-1.什么是ASPICE?

什么是ASPICE? ASPICE全称是“Automotive Software Process Improvement and Capacity dEtermination”,即汽车软件过程改进及能力评定,简称A-SPICE或ASPICE。 属于过程模型,由过程和能力度两个维度构成,用于评价汽车…

DBeaver连接hive(详细图解)

文章目录DBeaver 简介使用DBeaver连接hive(1)配置Maven仓库(2)配置hive驱动(3)创建hive连接(4)连接测试DBeaver 简介 dbeaver是免费和开源(GPL)为开发人员和数…

RK3588平台开发系列讲解(AUDIO篇)Linux音频调试--alsa-utils 工具

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、工具介绍二、工具的使用2.1 aplay2.2 arecord2.3 amixer2.4 aplay | arecord沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍Linux下audio调试工具alsa-utils的使用方法。 一、工具介绍 RK平台…

[ 数据结构 -- 手撕排序算法第一篇 ] 插入排序

文章目录前言一、常见的排序算法二、插入排序的实现2.1 基本思想2.2 直接插入排序2.2.1 单趟排序的代码实现三、插入排序代码实现四、插入排序测试五、插入排序的时间复杂度5.1 最坏的情况下5.2 最好的情况下六、直接插入排序特性总结总结前言 手撕排序算法第一篇:…

HashSet源码解析

HashSet源码解析 问题 (1)集合(Collection)和集合(Set)有什么区别? (2)HashSet 怎么保证添加元素不重复? (3)HashSet 是否允许 nu…

基于nodejs大学生宿舍管理系统的设计与实现.zip(论文+源码+ppt文档+视频录制)

相关资料下载地址:请点击下载》》》 1 绪论 3 1.1 项目开发背景和意义 3 1.2 项目研究现状 3 1.3 项目主要的内容 4 2 相关技术介绍及环境开发条件 4 2.1相关技术介绍 4 2.1.1 nodejs开发框架 4 2.1.2 MySQL数据库 5 2.1.3VSCODE开发工具 6 2.2环境开发条件 6 3 系…

C51——震动控制喇叭

通过继电器使得喇叭稍微的带一点点智能的感觉: 当振动传感器模块 感受到震动的时候让喇叭响起来,这喇叭之后两根线来供电,这便少不了继电器的作用 震动模块,继电器和单片机的连接方式在前面已经提到了 这里我们先让电源的负极和…

就是收藏,不解释。Jmeter接口测试数据库断言的实现与设计

接口测试大部分都使用接口的响应值作为接口验证的依据,但在与数据库有交互的接口中这种结果判断不足以判断接口的正确性,本文将以jmeter作为接口测试的工具来实现接口的数据库断言 一、总体思路概述 使用jmeter发起接口请求使用json提取器获取接口响应结…

双指针算法(尺取法)

目录 一 算法简介 1)算法解释 2)概述 3)分类 4)前提 5)算法模板 6)常见问题 二 算法实践 1)反向扫描 1)反转字符串(一) 题目描述 思路 解法 2&…

fiddler抓包 - Android 虚拟机

导出fiddler 证书 将Fiddler的证书导出到电脑,点击Tools -> Options -> HTTPS -> Actions -> Export Root Certificate to Desktop 下载和安装openssl 添加一下path :C:\Program Files\OpenSSL-Win64\bin 证书格式转换与重命名 1、将Fiddler cer证书转…

CS61A Proj 3

更好的阅读体验 Project 3: Ants Vs. SomeBees ants.zip The bees are coming! Create a better soldier With inherit-ants. Introduction Important submission note: For full credit, Submit with Phase 1 complete by Thursday, March 3 (worth 1 pt).Submit with Phase …

【Flink】Flink 1.13 版本 KafkaSource 代码解读

文章目录 1.概述2. 案例3.源码解读3.1 build3.2 handleOperatorEvent3.3 addSplits3.4 createSplitFetcher3.5 创建SplitFetcher2.6 运行2.7 启动 SplitFetcher2.8 runOnce2.9 fetchTask.run2.9 fetch1.概述 因为最近看到新版本的kafka source进行改版了,于是就想测试一下看看…

Gradle学习笔记之任务

文章目录任务入门任务行为任务的依赖方式参数依赖内部依赖外部依赖多种依赖方式的混合跨项目依赖任务执行gradle run命令演示gradle projects演示gradle tasks演示gradle tasks --all演示查看指定的任务组任务查看某一任务的详细信息查看项目的依赖关系查看项目的属性信息任务类…

RCNN网络源码解读(Ⅱ) --- 使用IOU计算正负样本用于finetune训练

目录 1.预训练二分类器Alexnet 1.1 code(finetune.py) 2.二分类数据集处理 2.1 code(cerate_classifier_data.py) 1.预训练二分类器Alexnet 1.1 code(finetune.py) 1.引入头文件 import os import c…

阿里是如何使用分布式架构的,阿里内部学习手册分享

为什么要使用分布式架构?分布式架构解决了互联网应用的两大难题:高并发和高可用。高并发指服务器并发处理客户端请求的数量大,而高可用指后端服务能始终处于可用状态。 提高系统容量 随着业务越来越复杂,服务也会变得越来越复杂…