接口基础知识2:http通信的组成

课程大纲

图片

 一、http协议

        HTTP(Hypertext Transfer Protocol,超文本传输协议)是互联网中被使用最广的一种网络协议,用于客户端与服务器之间的通信。

        HTTP协议定义了一系列的请求方法,例如 GET、POST、PUT、DELETE 等,用于不同类型的数据操作。

http协议通信的组成

url

请求路径

method

请求方法

request

请求(请求头 + 请求参数/请求体)

HTTP Status Code

http状态码

response

响应(响应头 + 响应体)

图片

发送接口请求和服务器返回过程

二、常见的几种请求

        最常见的请求是get、post请求,我们先熟悉以下几种常见的请求(put、delete和post基本相同)

图片

        ① 无参数的get请求

        ② 带参数的get请求

        ③ 无参数的post请求

        ④ 带参数的post请求-参数格式为form-data

        ⑤ 带参数的post请求-参数格式为json

        其中,get请求可以通过浏览器直接发送,并看到返回结果,但post请求需要借助接口测试工具(如jmeter、postman)来实现。

2.1无参数的get请求

        无请求参数,直接使用get方法请求url(浏览器直接输入url),服务器返回消息。

图片

图片

请求包含的内容

method

get

url

127.0.0.1:9999/hello

Request header

(系统自动生成)

Connection: keep-alive

Host: 127.0.0.1:9999

User-Agent: Apache-HttpClient/4.5.12 (Java/1.8.0_281)

Request param

Status code

200

Response header

HTTP/1.1 200 OK

Content-Length: 75

Content-Type: text/plain; charset=UTF-8

Response body

Hello world!!!

2.2带参数的get请求

get方法请求带参数的url,拼接格式:

[URL]?[参数名1]=[参数值1]&[参数名2]=[参数值2]…

举例:

127.0.0.1:9999/get_parameters?course=土小帽软件测试班&author=火火

图片

2.3 无参数的post请求

        post方法请求无参数的url,使用postman发送请求,结果如下:

图片

请求包含的内容

method

post

url

127.0.0.1:9999/post

Request header

(系统自动生成)

Connection: keep-alive

Host: 127.0.0.1:9999

User-Agent: Apache-HttpClient/4.5.12 (Java/1.8.0_281)

Request body

Status code

200

Response header

HTTP/1.1 200 OK

Content-Length: 75

Content-Type: text/plain; charset=UTF-8

Response body

我是服务器返回的消息:你发送了一个不带参数的post请求。

2.4 带参数的post请求(2种参数格式)

2.4.1 参数格式为form-data

        注意,发送form-data参数,需要添加request header如下:

Content-Type: multipart/form-data

图片

图片

2.4.2 参数格式为json

        注意,发送form-data参数,需要添加request header如下:

Content-Type: application/json

图片

图片

【结语】

本节课主要了解http通信的组成部分,能了解常用的请求即可,后续将对每一部分详细讲解各部分及相应取值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[线性RNN系列] Mamba: S4史诗级升级

前言 iclr24终于可以在openreview上看预印本了 这篇(可能是颠覆之作)文风一眼c re组出品;效果实在太惊艳了,实验相当完善,忍不住写一篇解读分享分享。 TL;DR (overview) Structured State-Sp…

代码随想录算法训练营Day21 | 669. 修剪二叉搜索树 | 108.将有序数组转换为二叉搜索树 | 538.把二叉搜索树转换为累加树

今日任务 669. 修剪二叉搜索树 题目链接: https://leetcode.cn/problems/trim-a-binary-search-tree/description/题目描述: Code class Solution { public:TreeNode* trimBST(TreeNode* root, int low, int high) {if(root nullptr){return root;…

virtualbox的ubuntu默认ipv4地址为10.0.2.15的修改以及xshell和xftp的连接

virtualbox安装Ubuntu后,默认的地址为10.0.2.15 我们查看virtualbox的设置发现是NAT 学过计算机网络的应该了解NAT技术,为了安全以及缓解ip使用,我们留了部分私有ip地址。 私有IP地址网段如下: A类:1个A类网段&…

GuLi商城-商品服务-API-品牌管理-JSR303自定义校验注解

自定义注解规则: 可以参考@NotNull注解 package com.nanjing.common.valid;import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.Target;i…

MATLAB激光通信和-积消息传递算法(Python图形模型算法)模拟调制

🎯要点 🎯概率论和图论数学形式和图结构 | 🎯数学形式、图结构和代码验证贝叶斯分类器算法:🖊多类型:朴素贝叶斯,求和朴素贝叶斯、高斯朴素贝叶斯、树增强贝叶斯、贝叶斯网络增强贝叶斯和半朴素…

Java性能优化-switch性能优化-用String还是int做比较

场景 Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化: Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化_java热点函数-CSDN博客 参考以上性能测试工具的使用。 下面针对Java中对switch-case比较时…

Prometheus 云原生 - 基于 file_sd、http_sd 实现 Service Discovery

目录 开始 为什么需要服务发现机制 File Service Discovery(file_sd) 基本概念 配置方式 使用案例 HTTP Service Discovery(http_sd) 基本概念 配置方式 使用案例 开始 为什么需要服务发现机制 我们知道在 Prometheus …

Java核心篇之JVM探秘:垃圾回收算法与垃圾收集器

系列文章目录 第一章 Java核心篇之JVM探秘:内存模型与管理初探 第二章 Java核心篇之JVM探秘:对象创建与内存分配机制 第三章 Java核心篇之JVM探秘:垃圾回收算法与垃圾收集器 第四章 Java核心篇之JVM调优实战:Arthas工具使用及…

VUE_TypeError: Cannot convert a BigInt value to a number at Math.pow 解决方法

错误信息 TypeError: Cannot convert a BigInt value to a number at Math.pow vue 或 react package.json添加 "browserslist": {"production": ["chrome > 67","edge > 79","firefox > 68","opera >…

Go语言---TCP服务端以及客服端的实现

TCP的C/S架构 TCP服务器的实现 监听的底层实现 func Listen(network, address string) (Listener, error) {var lc ListenConfigreturn lc.Listen(context.Background(), network, address) }type Listener interface {// Accept waits for and returns the next connection …

每日Attention学习10——Scale-Aware Modulation

模块出处 [ICCV 23] [link] [code] Scale-Aware Modulation Meet Transformer 模块名称 Scale-Aware Modulation (SAM) 模块作用 改进的自注意力 模块结构 模块代码 import torch import torch.nn as nn import torch.nn.functional as Fclass SAM(nn.Module):def __init__…

C++笔试强训5

文章目录 一、选择题1-5题6-10题 二、编程题题目一题目二 一、选择题 1-5题 x1,先x,再x–,while判断永远为真,故死循环 选D。 sizeof会计算\0,strlen不包括\0,并且strlen只计算\0之前的。 所以sizeof是10,strken是4 …

纯净IP的重要性解析与测评分析

作为连接互联网世界的桥梁,IP地址的纯净度不仅关乎网络访问的速度与稳定性,更是影响着数据安全与隐私保护。今天,我们将带您深入探索纯净IP的重要性,并分享我们对芝麻HTTP与巨量IP这两家提供纯净SOCKS5代理服务的深度测评分析。 一…

SSM整合--笔记总结

1.概述 ssm(springmvc spring mybatis)这三个框架的整合。 spring和springmvc他们隶属于一家公司,他们无需整合。 spring和mybatis框架的整合。 spring把mybatis中的配置内容放到自己的配置文件中。因为我们可以让tomcat加载spring配置文件。 思考:mybatis配置文件…

240710_昇思学习打卡-Day22-条件随机场

240710_昇思学习打卡-Day22-条件随机场 在正式开始LSTMCRF序列标注之前,我们先来了解一下条件随机场,以下仅做简单介绍。 CRF全称Conditional Random Field,按照名字来理解,条件随机,随机输入,条件输出。…

老物件线上3D回忆展拓宽了艺术作品的展示空间和时间-深圳华锐视点

在数字技术的浪潮下,3D线上画展为艺术家们开启了一个全新的展示与销售平台。这一创新形式不仅拓宽了艺术作品的展示空间,还为广大观众带来了前所未有的观赏体验。 3D线上画展制作以其独特的互动性,让艺术不再是单一的视觉享受。在这里&#x…

计算机网络之网络互连

1.什么是网络互连 1.1网络互连的目的 将两个或者两个以上具有独立自治能力的计算机网络连接起来,实现数据流通,扩大资源共享范围,或者容纳更多用户。 网络互连包括: 同构网络、异构网络的互连, 局域网与局域网&…

JMX脚本组成分析

JMX脚本组成分析 前言 在前两集,我们已经完成了项目与环境管理开发的实战。 通过观察E-R图,我们下一步的内容就是要去完成压测模块的内容,那么在完成压测模块的内容之前,我们要计划一下如何压测,以及要从哪个角度切…

今天我们来聊Java IO模型,BIO、NIO、AIO三种常见IO模型

一、写在开头 很久没更新喽,最近build哥一直在忙着工作,忙着写小说,都忘记学习自己的本职了,哈哈,不过现在正式回归! 我们继续学习Java的IO相关内容,之前我们了解到,所谓的IO&#…

Study--Oracle-07-ASM自动存储管理(一)

一、ASM实例和数据库实例对应关系 1、ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出来的一项新功能,这是Oracle自己提供的卷管理器,主要用于替代操作系统所提供的LVM,它不仅支持单实例,同时对RAC的支持也是非常好。ASM可…