测试面试必备:HTTP请求和响应详解!

news2024/12/28 19:28:44

一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端,HTTP的响应内容同样有标准的格式。无论是什么客户端或者是什么服务端,大家只要按照HTTP的协议标准来实现的话,那么它一定是通用的。

HTTP 请求格式

HTTP请求格式主要有四部分组成,分别是:请求行、请求头、空行、消息体,每部分内容占一行

1

2

3

4

5

6

<request-line>

<general-headers>

<request-headers>

<entity-headers>

<empty-line>

[<message-body>]

请求行:请求行是请求消息的第一行,由三部分组成:分别是请求方法(GET/POST/DELETE/PUT/HEAD)、请求资源的URI路径、HTTP的版本号

1

GET /index.html HTTP/1.1

请求头:请求头中的信息有和缓存相关的头(Cache-Control,If-Modified-Since)、客户端身份信息(User-Agent)等等。例如:

1

2

3

4

Cache-Control:max-age=0

Cookie:gsScrollPos=; _ga=GA1.2.329038035.1465891024; _gat=1

If-Modified-Since:Sun, 01 May 2016 11:19:03 GMT

User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36

消息体:请求体是客户端发给服务端的请求数据,这部分数据并不是每个请求必须的。

HTTP 响应格式

服务器接收处理完请求后返回一个HTTP相应消息给客户端。HTTP响应消息的格式包括:状态行、响应头、空行、消息体。每部分内容占一行。

1

2

3

4

5

6

<status-line>

<general-headers>

<response-headers>

<entity-headers>

<empty-line>

[<message-body>]

状态行:状态行位于相应消息的第一行,有HTTP协议版本号,状态码和状态说明三部分构成。如:

1

HTTP/1.1 200 OK

响应头:响应头是服务器传递给客户端用于说明服务器的一些信息,以及将来继续访问该资源时的策略。

1

2

3

4

5

6

Connection:keep-alive

Content-Encoding:gzip

Content-Type:text/html; charset=utf-8

Date:Fri, 24 Jun 2016 06:23:31 GMT

Server:nginx/1.9.12

Transfer-Encoding:chunked

响应体:响应体是服务端返回给客户端的HTML文本内容,或者其他格式的数据,比如:视频流、图片或者音频数据。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

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

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

相关文章

Windows新电脑安装环境快速运行Springboot项目

文章目录 简要步骤说明1、配置java运行环境2、配置maven环境3、下载git4、运行IDES Eclipse STS4.1 安装 lombok插件4.2 配置 maven setting.xml 地址4.3 配置 Java版本 5、顺利运行 Springboot项目 简要步骤说明 1、配置java运行环境 安装java11 2、配置maven环境 配置 setti…

【c++】遍历容器,哪一种方法速度最快?

终于有一个简单的每日一题&#xff01;写完的时候甚至代码还没有编译结束&#xff01;刚好借今天的每日一题探究一下一直以来的一些疑惑&#xff1a;容器的遍历。 题目大概是这样的&#xff1a; 我们一眼就看到了容器的遍历&#xff01;&#xff01;那么众所周知&#xff0c;容…

管理类联考——英语二——阅读篇——题材:经济

文章目录 2011 年&#xff0c;Text 2——题材&#xff1a;经济句意理解题-原词复现一般不选&#xff0c;但是要留意无中生有推断题-原词复现&#xff0c;注意是否“无中生有”“对象错误”“词意相反”推断题推断题主旨题-不了解阅读意思&#xff0c;很难做出选择 2011 年&…

R-CNN(CVPR2014)

文章目录 AbstractIntroductionObject detection with R-CNNModule designTest-time detection Visualization, ablation, and modes of errorSemantic segmentationConclusion 论文链接 源代码 Abstract 在经典PASCAL VOC数据集上测量的对象检测性能在过去几年中趋于稳定&…

MTK6737安卓核心板-MT6737核心板_4G安卓模块

MT6737核心板以竞争力的价格提供出色的性能和功耗效率&#xff0c;降低了BOM、GMO和内存成本&#xff0c;符合以价值为导向的市场需求。该核心板是一种先进的解决方案&#xff0c;为终端用户提供了高品质又经济实惠的体验。它与全球范围内的IMS兼容&#xff0c;支持VoLTE、ViLT…

【C++那些事儿】函数重载与C++中的“指针“——引用

君兮_的个人主页 即使走的再远&#xff0c;也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;我之前看过一套书叫做《明朝那些事儿》&#xff0c;把本来枯燥的历史讲的生动有趣。而C作为一门接近底层的语言&#xff0c;无疑是抽象且难度颇…

SparkSQL之LogicalPlan概述

逻辑计划阶段在整个流程中起着承前启后的作用。在此阶段&#xff0c;字符串形态的SQL语句转换为树结构形态的逻辑算子树&#xff0c;SQL中所包含的各种处理逻辑&#xff08;过滤、剪裁等&#xff09;和数据信息都会被整合在逻辑算子树的不同节点中。逻辑计划本质上是一种中间过…

面试时一些不能说的离职原因

“你为什么从上一家公司离职&#xff1f;”这个问题在面试时基本都会被问到&#xff0c;这是无法避免的问题。那么什么样的理由才能做到既反映实际情况&#xff0c;又能得到HR认可呢&#xff1f;以下的几种回答千万不能脱口而出。 1、毫无顾忌地说前公司的坏话 1&#xff09;…

进阶JAVA篇- Map 系列集合的遍历方法与常用API

目录 1.0 Map 集合的说明 1.1 Map 集合的常用方法 1.2 Map 系列集合的特点 2.0 Map 系列集合的遍历方法&#xff08;三种方法&#xff09; 2.1 使用 keySet() 方法遍历 2.2 使用 entrySet() 方法遍历 2.3 使用 forEach() 方法遍历&#xff08;Java 8&#xff09; 1.0 Map 集合的…

数据结构与算法——选择排序法

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

镇魂街武神躯手游攻略,镇魂街武神躯神魂搭配

武神躯是《镇魂街》手游中令人敬畏的角色之一&#xff0c;技能的合理搭配至关重要。下面将详细介绍镇魂街武神躯手游攻略如何搭配武神躯的技能以取得最佳战斗效果&#xff1a; 关注【娱乐天梯】&#xff0c;获取内部福利号 1. 主动技能-刺客之心&#xff1a;这是武神躯的核心主…

python 桌面软件开发-matplotlib画图鼠标缩放拖动

继上一篇在 Java 中缩放拖动图片后&#xff0c;在python matplotlib中也来实现一个自由缩放拖动的例子&#xff1a; python matplotlib 中缩放&#xff0c;较为简单&#xff0c;只需要通过设置要显示的 x y坐标的显示范围即可。基于此&#xff0c;实现一个鼠标监听回调&#xf…

python安装的第三方库

安装第三方库的方式 先按“winR”并输入 cmd 打开命令运行窗口 输入命令&#xff1a; pip install 包名&#xff0c;比如要安装gym包就输入pip install gym 可能存在报错问题及解决办法 报错Could not fetch URL https://pypi.tuna.tsinghua.edu.cn/simple/pip/: There was …

基于Java的美食推荐管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

SparkSQL的Shuffle分区设定及异常数据处理API(去重、缺失值处理)

一、Spark SQL的Shuffle分区数目设定 在允许spark程序时&#xff0c;查看WEB UI监控页面发现&#xff0c;某个Stage中有200个Task任务&#xff0c;也就是说RDD有200分区Partion。 产生原因&#xff1a; 在Spark SQL中&#xff0c;当Job中产生Shuffle时&#xff0c;默认的分区数…

Android乐器在线租借租赁系统+全套手把手视频教程

【项目功能介绍】 功能列表: 本系统包含后台管理和前端app双端系统, 本系统包含三个角色: 管理员,员工,app用户。 后台管理员的功能包含: 登录, 退出, 乐器管理,添加乐器,修改乐器,禁用启用乐器; 乐器器械管理,添加乐器器械,修改乐器器械,启用禁用乐器器械; 订单管理,确定订单…

Node学习笔记之fs模块

fs 全称为 file system &#xff0c;称之为 文件系统 &#xff0c;是 Node.js 中的 内置模块 &#xff0c;可以对计算机中的磁盘进行操 作。 本章节会介绍如下几个操作&#xff1a; 文件写入文件读取文件移动与重命名文件删除文件夹操作查看资源状态 一、文件写入 文件写入就…

Vercel,建站者的福音!!!

前言 各位互联网精神股东大家好&#xff01; 在今年八九月份之前&#xff0c;我所搭建的杂七杂八的个人、团队应用&#xff0c;包括但不限于文档站&#xff0c;博客站&#xff0c;Api服务&#xff0c;线上项目等&#xff0c;他们背后的服务支持可以归纳为以下几种&#xff1a…

Arduion 驱动 ADXL335三轴加速度计模块

Arduion 驱动 ADXL335三轴加速度计模块 简介电气参数原理图接线代码实验结果 简介 ADXL335是一个小&#xff0c;薄&#xff0c;低功率&#xff0c;完整的三轴加速度计&#xff0c;具有信号调节电压输出。该产品测量加速度的最小全尺度范围为3 g。它可以测量倾斜传感应用中重力…

【微信小程序开发】之微信授权登陆

目录 前言 ​编辑一、微信授权登陆介绍 1. 基本概念 2. 微信小程序开发实现微信授权登陆原理流程 3. 小程序中运用微信授权登陆的好处 二、微信授权登陆接口演示 1. 在微信开发工具中导入小程序授权微信登陆前端项目 2. 微信授权登陆的方式 2.1 wx.login 2.2 wx.getUse…