痛定思痛!!!结合fidller抓包,简单介绍http请求报文和http响应报文

news2024/11/15 9:43:28

简单介绍http请求报文和http响应报文

  • 前言
  • 1. http请求报文的组成
    • 1.1 请求行的内容
    • 1.2 请求头的组成
    • 1.3 请求体
  • 2. HTTP响应报文组成

前言

各类书上在介绍http请求报文和http响应报文时花的太过于专业,没有结合实际,当时读的时候可能是我太笨了,想象不出来到底是个什么样子,所以我自己简单的对其做了一下总结:

1. http请求报文的组成

   一般书上会说http请求报文由四部分组成,请求行(request line),请求头部(request header),空行(blank line),请求数据(request body)。那么实际上我们可以理解为请求报文由三部分组成,因为只是加了一个空行而已。在这个我们可以记为http请求报文由请求行、请求投、请求体三部分组成
在这里插入图片描述

1.1 请求行的内容

请求行里面也包含着三部分请求方法、请求地址(URL)、请求的协议版本
在这里插入图片描述
在这里插入图片描述

    上图中的第一行就是我们现在所说的请求行,因为请求方法是post,所以参数被放在了请求体中,如果请求方法是get,请求地址和参数将会用?想连。例如我正在写文章的地址如下图:
在这里插入图片描述

注意如果是面试的花请求的方法和长连接短连接问题是面试官比较常问的两个问题

  • 长连接短连接问题
       在HTTP/1.0中,默认使用的是短连接。也就是说,浏览器和服务器每进行次HTTP 操作,就建立一次连接,但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的Web 页中包含有其他的Web资源,如JavaScript文件、图像文件、CSS 文件等;当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话。
      但从HTTP/1. 1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响 应头有加入这行代码: Connect ion:keep-alive
    在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据 的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一 条已经建立的连接.Keep-Alive不会永久保持连接,它有-个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接要客户端和服务端都支持长连接。

  • get方法与post方法的区别
    在这里插入图片描述

1.2 请求头的组成

请求头各种主要由键值对组成,通知服务器关于客户端请求各种附加信息,键值对的类型主要有十种,了解即可,如上面fiddler抓包图并不是每一种键值对都要包含在请求头里面。
在这里插入图片描述

1.3 请求体

请求体里就是要上传的数据或者要修改更新的数据,通常的数据格式有:

  • text/html: HTML格式
  • text/plain:纯文本格式
  • image/jpeg:jpg图片格式
  • application/json: JSON数据格式
  • application/x-www-form-urlencoded: form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据格式)
  • multipart/form-data: 在表单中进行文件上传时使用

2. HTTP响应报文组成

在这里插入图片描述
HTTP响应报文的主要考点就是各类状态码的含义:

  • 1xx: 提示信息,服务器已经接受了当前请求,期待下一步操作请求,代表状态码100
  • 2xx:成功,表示请求已被成功接收、理解、接受,代表状态码200
  • 3xx:重定向,要完成请求必须进行进一步操作, 代表状态码301、302、304 等
  • 4xx:客户端错误,请求有语法错误或请求无法实现,代表状态码403, 404等
  • 5xx:服务器端错误,服务器未能实现合法的请求

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

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

相关文章

今天给在家介绍一篇健身俱乐部信息管理系统设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

安装包UI美化之路-nsNiuniuSkin界面在线设计引擎

一年多前,我们自己开发了一个用于编辑、预览、调试nsNiuniuSkin的UI界面工具,越来越觉得好用,忍不住想要分享出来! 今天我把这个工具重新整理了一下,功能又完善了一些;下面就介绍一下这个工具的功能和使用…

深度解析:Web 3.0和元宇宙

导读:元宇宙的终极形态势必是去中心化的,而现在的网络生态并不能完全满足元宇宙去中心化的需求。一些人认为,即将到来的Web 3.0时代和元宇宙需要的网络生态高度重合。Web 3.0或许能够成为人类迈向元宇宙道路上重要的一步。 01 Web的三次技术迭代 Web 3.0通过新技术体现出来,…

蓝桥杯2022年第十三届决赛真题-围栏(求凸多边形的面积)

题目描述 这天,小明在造围栏。 他提前在地上 (二维平面) 打好了 n 个洞,这 n 个洞的位置形成了一个凸多边形。当他准备把固定围栏的木杆插进去的时候,突然发现自己少准备了两根木杆。 如图,他现在只能在这 n 个洞中选出 n − 2 …

【linux】软件管理

linux软件管理 文章目录linux软件管理桥接模式下配置虚拟机连接互联网nmcli相关命令windows和linux之间的FTPlinux中的软件包类型rpm相关命令搭建本地软件仓库测试本地仓库重新挂载仓库到http服务器上设置仓库镜像开机自动挂载dnf相关命令配置EPEL(Extra Packages f…

学生个人网页设计作品:旅游网页设计与实现——成都旅游网站4个页HTML+CSS web前端网页设计期末课程大作业 学生DW静态网页设计 学生个人网页设计作品

👨‍🎓静态网站的编写主要是用 HTML DⅣV CSSJS等来完成页面的排版设计👩‍🎓,一般的网页作业需要融入以下知识点:div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉…

【YSYY】DSPE-PEG-Transferrin;DSPE-PEG-TF转铁蛋白的主动靶向介绍;磷脂-聚乙二醇-转铁蛋白

产品简称:DSPE-PEG-Transferrin;DSPE-PEG-TF 中文名称:磷脂-聚乙二醇转铁蛋白 产品全称: 1,2-dipalmitoyl-sn-glycero-3-phosphoethanolamine-N-(polyethylene glycol)-Transferrin 产品外观:白色固体 结 构 式&a…

Kubernetes NUMA 感知

TopologyManager TopologyManager 在1.18版本中处于 Beta 状态,该功能支持 CPU 和外围设备(例如 SR-IOV VF 和 GPU)的 NUMA 对齐,使工作负载能够在针对低延迟优化的环境中运行。 在引入 TopologyManager 之前,CPU 和…

2022-11-17 更高效的Cascades优化器 - Columbia Query Optimizer

在较早的文章中介绍了些Volcano/Cascades优化器框架的设计理念和实现思路,基本是基于论文的解读: https://zhuanlan.zhihu.com/p/364619893 https://zhuanlan.zhihu.com/p/365085770 虽然cascades号称目前最为先进的优化器搜索框架,但不得不说这2篇pa…

ZNS SSD是否真的前途一片光明?

引言 在上次存储随笔更新了一篇ZNS相关的文章“炙手可热的ZNS SSD将会为数据中心带来什么?”以后,在存储圈也一度引发关注。某公司相关同学也在朋友圈疯狂转发,让一些朋友误以为是存储随笔专为某公司写的技术推广软文。 借这个机会在这里再次…

【算法100天 | 20】有环/无环链表的相交问题(Java实现)

若两个链表相交,请返回相交的第一个节点。 给定两个有可能有环也有可能无环的单链表,头节点head1和head2。 实现一个函数,如果两个链表相交,请返回相交的第一个节点(从这个节点开始,后续结构都一样&#…

Leetcode-每日一题792. 匹配子序列的单词数(分桶)

题目链接:https://leetcode.cn/problems/number-of-matching-subsequences/description/ 思路 方法一、分桶 题目意思:给你一个字符串 s 和字符串数组 words, 可以对字符串 s 某些位置上的字符进行删除,并不改变原来的字符顺序…

什么是SIMD?

为了提高 CPU 指令处理数据的能力,半导体厂商在 CPU 中推出了一些可以同时并行处理多个数据的指令 ——SIMD指令。 百度百科定义为: SIMD全称Single Instruction Multiple Data,单指令多数据流,能够复制多个操作数,并…

新库上线 | CnOpenData中国核酸检测机构及采样点数据

中国核酸检测机构及采样点数据 一、数据简介 2020年1月21日,国家卫健委发布1号公告,将新型冠状病毒感染的肺炎纳入《中华人民共和国传染病防治法》规定的乙类传染病,并采取甲类传染病的预防、控制措施。目前,新型冠状病毒肺炎防控…

Ubuntu20.04安装c++版本的OpenCV

文章目录参考资料1. 安装步骤1.1 仅构建核心模块1.2 构建含有opencv_contrib的版本2. 安装过程碰到的问题2.1 编译opencv时,卡在IPPICV参考资料 https://www.jianshu.com/p/3c2fc0da7398https://docs.opencv.org/4.5.3/d7/d9f/tutorial_linux_install.htmlhttps://…

SpringBoot+Vue实现前后端分离的社区疫情防控管理系统

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue.js 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JD…

[附源码]java毕业设计昆明市人民医院血库管理系统

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

vim的基本操作

文章目录vim是什么vim的模式命令/普通模式(Normal mode)移动光标上下左右其余移动光标文本操作**进入替换模式:shiftrR**插入模式(insert mode)底行模式(last list mode)vim的配置vim一键配置vim是什么 简单理解&…

【附源码】计算机毕业设计JAVA仁爱公益网站

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

plt.plot

画点: 1,加一个参数 o,即画点。会根据列表自动设置为x坐标 plt.plot([1,5,3,4,5],"o")2,也可设置多个坐标