http(1)

news2024/10/2 16:23:33

主要介绍http 1.0

我们在浏览器中输入一个网址,稍等片刻就看见了网页

 客户端会发送一个http请求,要求返回cn.bing.com这个网址,服务器收到请求后就会返回一个html页面 (服务器根据请求找到客户端想要的资源,然后把这个html通过HTTP响应返回给浏览器,客户端收到HTML之后对页面进行渲染)

上诉这个HTTP模式就是典型的 一问一答 的模型协议

学习HTTP的主要学习内容 是学习HTTP的报文格式(报文格式就是描述了HTTP请求是啥样的,响应是啥样的)

因此我们需要使用抓包工具,来捕获到请求交互的详细情况(抓包就是一种特殊的软件,相当于一个代理程序,浏览器给服务器发的请求就会经过这个代理程序,进一步分析出请求和响应的结果如何)借助这个代理程序,就知道了浏览器和服务器之间具体交互细节

代理还分具体两种,正向代理和反向代理,前者就是给客户端提供服务,和客户端关系紧密,这样服务器就不知道真实的客户端是啥。后者就是给服务器提供服务,和服务器关系紧密,这样客户端就不知道真实的服务器是啥。

fiddler

左侧区域是抓到的请求列表

 上面是http请求的原始模样,下面是http响应的原始模样

开启fiddler抓取https的功能

在菜单栏 tools options 然后如图勾选选项,期间可能需要安装证书

如果这个时候还看不见https的进程,可能是使用了其他的代理软件,例如游戏加速器导致的,不能同时和fiddler运行。

HTTP请求

 构造一个HTTP请求,本质上就是往一个TCPsocket中,按照下列格式来写入数据即可 

GET http://blogs.msdn.microsoft.com/fiddler/2011/12/10/revisiting-fiddler-and-win8-immersive-applications/ HTTP/1.1
Host: blogs.msdn.microsoft.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.48
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,be;q=0.5,eo;q=0.4
 

GET http://blogs.msdn.microsoft.com/fiddler/2011/12/10/revisiting-fiddler-and-win8-immersive-applications/ HTTP/1.1

第一行是GET方法 然后是URL 用来描述网络上的唯一资源

 Host: blogs.msdn.microsoft.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.48
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,be;q=0.5,eo;q=0.4

然后是一个按行组成的键值对,每一行是一个键值对,键和值之间使用: 来分割(冒号加一个空格)

有些请求的最底下会有空行,一个HTTP请求的header可以有若干个,就使用空行来作为header的结束

有的请求会有body,也就是正文,会显示用户名,密码,uid等(基本都为加密)

HTTP响应

HTTP/1.1 302 Found
Location: https://blogs.msdn.microsoft.com/fiddler/2011/12/10/revisiting-fiddler-and-win8-immersive-applications/
X-Azure-Ref: 0ifk/ZAAAAAA8GVVbO6Q6Tqt/0u5hvW8NU0lOMzBFREdFMDIxMwBkZWEwZDI4Ny03YzE0LTRmZTYtOGI3Yi1kMDkxNDRhOWQzNWY=
Date: Wed, 19 Apr 2023 14:24:09 GMT
Content-Length: 0

HTTP/1.1 302 Found

1.1是版本号 302是状态码 后面可能会跟着一个状态码的描述

Location: https://blogs.msdn.microsoft.com/fiddler/2011/12/10/revisiting-fiddler-and-win8-immersive-applications/
X-Azure-Ref: 0ifk/ZAAAAAA8GVVbO6Q6Tqt/0u5hvW8NU0lOMzBFREdFMDIxMwBkZWEwZDI4Ny03YzE0LTRmZTYtOGI3Yi1kMDkxNDRhOWQzNWY=
Date: Wed, 19 Apr 2023 14:24:09 GMT
Content-Length: 0

为响应报头,也就是header,为键值对结构,使用: 来进行分割(冒号和空格)

 空行,作为header的结束标记

正文,可以是json html  js css 图片等结果

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

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

相关文章

[LeetCode]路径总和

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 是指没有子节点…

【并发编程】线程池的原理和源码分析

线程使用上可能的问题 我们一般通过new Thread().start();来创建和运行一个线程,如果在业务过程中有大量场景需要使用多线程来并发,那么就会有以下问题 需要频繁的创建和销毁线程 ,需要消耗CPU资源如果创建和销毁的线程的数量过多(大于CPU核…

CMOS图像传感器——从传感器冗余说起

在这先抛出一个概念,什么是成像圈?众所周知,相机的镜头近似于圆柱体,光线透过圆筒子投射出的大都是圆形。我们可以拿一个镜头演示一下,当这个圆圈投在传感器所在焦平面时,我们称之为像场。像场的边界我们称之为成像圈,成像圈是圆的,但是传感器是矩形,天圆地方的怎么放…

Lombok插件下载与离线安装

Lombok插件下载与离线安装 首先你既然搜要离线安装或下载,那么肯定也是在IDEA工具里面,无法搜索到,或者自动下载安装失败吧? 安装包下载地址 记得和 idea版本一样, 如果不知道啥版本看下面

CleanMyMac X4.15重大更新 新功能菜单发布

CleanMyMac,一款电脑清理软件,可以帮助你清理垃圾文件、优化系统性能、管理应用程序等。它就像你的电脑管家,让你的电脑始终保持最佳状态。无论是手机还是电脑,在使用一段时间之后都可能会发生卡顿的现象,很多小伙伴会…

C++ 高级数据结构————[ 单调栈 ]

每周一篇的算法文章来了 今天讲解的是高级数据结构中的——单调栈 单调栈,顾名思义,就是升级版的栈() 先回顾一下栈把 栈,是一种线性表,它的特点是只能从一边进出,并且先进后出,后进…

Windows入门篇一之MSDN手册的使用和第一个窗口程序

Windows入门篇之MSDN手册的使用和第一个窗口程序 MSDN手册MSDN手册是什么MSDN手册的下载和安装MSDN手册的使用 第一个窗口程序项目的创建第一个简单的窗口程序 MSDN手册 MSDN手册是什么 MSDN手册是VS中的一个帮助手册,帮助初学者学习Windows编程,来查找…

opencv实现卡尔曼滤波

卡尔曼滤波是一种递归的估计,即只要获知上一时刻状态的估计值以及当前状态的观测值就可以计算出当前状态的估计值,因此不需要记录观测或者估计的历史信息。 卡尔曼滤波器分为两个阶段:预测与更新。在预测阶段,滤波器使用上一状态…

VScode配置远端服务器深度学习项目

前提准备已安装VScode。 1.安装插件Remote Development 安装完成后左侧就多了远程资源管理器图标: 1.点击远程资源管理器。 2.点击小齿轮(配置)。 3.选择config配置文件,如果没有自己按照相似路径新建config文件后重复1、2、3步骤…

组合总和III

组合总和III 题目 力扣题目链接:https://leetcode.cn/problems/combination-sum-iii/ 代码 class Solution {public:vector<vector<int

小航助学答题系统编程等级考试scratch一级真题2023年3月(含题库答题软件账号)

青少年编程等级考试scratch真题答题考试系统请点击 电子学会-全国青少年编程等级考试真题Scratch一级&#xff08;2019年3月&#xff09;在线答题_程序猿下山的博客-CSDN博客_小航答题助手 1.下列说法不正确的是&#xff1f;&#xff08; &#xff09; A.可以从声音库中随机…

【JSP学习笔记】7.JSP 过滤器

JSP 过滤器 JSP 和 Servlet 中的过滤器都是 Java 类。 过滤器可以动态地拦截请求和响应&#xff0c;以变换或使用包含在请求或响应中的信息。 可以将一个或多个过滤器附加到一个 Servlet 或一组 Servlet。过滤器也可以附加到 JavaServer Pages (JSP) 文件和 HTML 页面。 过…

20230419 | 704.二分查找、27.移除元素

1、数组基础理论 int a[m][n]; 数组长度表示&#xff1a;a[0].length 数组宽度表示&#xff1a;a.length 2、704.二分查找 特征&#xff1a;数组是升序的找某个数&#xff0c;那就使用二分法。时间复杂度O(log n)&#xff0c;空间复杂度O(1) 我使用左闭右闭区间 计算中点&…

22、原理解析

文章目录 1、Profile功能1、application-profile功能2、Profile条件装配功能3、profile分组 2、外部化配置1、外部配置源2、配置文件查找位置3、配置文件加载顺序&#xff1a;4、指定环境优先&#xff0c;外部优先&#xff0c;后面的可以覆盖前面的同名配置项 3、自定义starter…

P600旗舰视觉款正式发布,重新定义视觉追踪与精准定位!

P600旗舰视觉款无人机是一款准行业级无人机&#xff0c;搭载RTK定位系统&#xff0c;定位精度可达厘米级&#xff0c;飞行路径更精准、姿态更稳定&#xff1b;机身搭载Allspark机载计算机&#xff0c;算力可达21TOPS&#xff0c;可运行大部分主流算法&#xff1b;配置G1三轴吊舱…

共模电感是如何抑制共模信号的

这是一个共模电感&#xff0c;外观它和我们常用的电感最大的区别就是共模电感有四个引脚&#xff0c;共模电感的磁芯上绕着两组线圈&#xff0c;这两个线圈匝数和材料都是一样的。 共模电感最主要的作用就是能抑制共模信号&#xff0c;一般用在电源或信号的EMI电路中。 首先来…

【ROS实操3服务调用添加乌龟数量】

需求描述 编码实现向turtlesim 发送请求&#xff0c;在乌龟显示节点的窗体指定位置生成一乌龟&#xff0c;这是一个服务请求操作。 实现分析 1.首先&#xff0c;需要启动乌龟显示节点。 2.要通过ROS命令&#xff0c;来获取乌龟生成服务的服务名称以及服务消息类型。 3.编写服…

C++基础入门——语法详解篇(上)

文章目录 一、什么是 C 呢&#xff1f; 二、为什么要学 C 呢&#xff1f; 三、C 基础语法 3、1 C 关键字 3、2 命名空间 3、2、1 为什么要引入命名空间 3、2、2 命名空间的定义 3、2、3 命名空间的使用 3、3 C的输入和输出 3、4 函数重载 3、4、1 函数重载的概念 3、4、2 C支持…

【WAF】雷池安装及使用体验

文章目录 前言一、雷池介绍二、安装及使用1.下载链接2.下载3. 安装waf测试 前言 长亭一直是我比较喜欢的一家公司&#xff0c;像业界比较出名的扫描器xray还有rad等很多工具都是他们开发的&#xff0c;使用起来非常的nice&#xff0c;联动其他安全工具可以实现自动漏洞挖掘&am…

掌玩科技×OceanBase:HTAP实时数据分析,降低80%存储成本

欢迎访问 OceanBase 官网获取更多信息&#xff1a;https://www.oceanbase.com/ 近日&#xff0c;新兴游戏公司海南掌玩网络科技有限公司&#xff08;以下简称“掌玩科技”&#xff09;正式牵手原生分布式数据库 OceanBase&#xff0c;其投放系统、用户分析系统、数据系统、运营…