HTTP请求详解

2023-11-20

HTTP概念:

HTTP全称是HyperText  Transfer  Protocal,即超文本传输协议,是应用层协议。当你上网浏览网页的时候,浏览器和web服务器之间就会通过HTTP在Internet上进行数据的发送和接收。HTTP是一个基于请求/响应模式的、无状态的协议。即我们通常所说的Request/Response。

上面说过HTTP是一个基于请求/响应模式的、无状态的协议。下面我们就分请求和响应来分别解读。

HTTP请求包报文由四部分组成:请求行,请求头,空行、请求体。

请求行:一般包含有请求的URL,请求方式(GET/POST),协议名称和版本号。

请求头:

Host:请求地址

User-AgentL:浏览器类型及操作做系统先关信息

Accept:指定客户端接受哪些类型的信息。

Accept-Charset请求报头域用于指定客户端接受的字符集

Accept-Language:指定客户端接收语言格式

Accept-Encoding:指定客户端接收编码格式

Authorization:请求报头域的请求,要求服务器对其进行验证。

Content-Length:请求长度

Content-Type:请求类型

Referer:当前请求引用于哪里

Connection:浏览器跟服务器连接状态

Cookie:浏览器保存的cookie信息

Date:请求时间

请求空行: 标志着请求头结束,请求正文(请求体)的开始

请求体只有使用POST方式访问时参数才会存在请求体。

HTTP响应包报文由三部分组成:响应行,响应头、响应体。

响应行:协议、版本、数字形式的状态代码,及相应的状态描述组成(示例:HTTP/1.1 200 OK)

状态代码由 3 位数字组成, 表示请求是否被理解或被满足,状态描述给出了关于状态码的简短的文字描述。状态码的第一个数字定义了响应类别,后面两位数字没有具体分类。第一个数字有 5 种取值,如下所示。

  • 1xx:指示信息——表示请求已经接受,继续处理
  • 2xx:成功——表示请求已经被成功接收、理解、接受。
  • 3xx:重定向——要完成请求必须进行更进一步的操作
  • 4xx:客户端错误——请求有语法错误或请求无法实现
  • 5xx:服务器端错误——服务器未能实现合法的请求。

常见的状态码、描述、说明

200   OK    //客户端请求成功

304        // 返回上次请求资源未作改动,验证浏览器的缓存机制

400   Bad Request  //请求参数错误

401   Unauthorized     //客户端无权访问,要去输入用户名\密码之类的授权信息

403   Forbidden      //禁止访问(读写权限等影响)

404   Not Found     //请求的资源不存在

405                          //请求方式不正确

500   Internal Server Error    //服务内部错误

502:网关错误

503   Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

Content-Language: zh-cn               --表示服务器支持的语言

Content-Encoding:表示服务器发送给浏览器的数据类型

Content-Length:表示服务器发送给浏览器的数据大小

Content-Type:表示服务器发送给浏览器的数据类型及内容编码

Connection:浏览器跟服务器连接状态

Date:响应时间

响应体:服务端返回给客户端的数据

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP请求详解 的相关文章

  • 内存管理——分页分段

    一 分页存储管理 1 页面与页框 1 页面 将一个进程的逻辑地址空间分成若干个大小相等的片 称为页面或页 并为各页加以编号 2 页框 相应于页面 把内存空间分成和页面相同大小的若干个存储块 称为 物理 块或页框 frame 3 页内碎片 在
  • Android中项目中各个文件夹的含义和用途详解

    1 src 存放所有的 java源程序 2 gen 为ADT插件自动生成的代码文件保存路径 里面的R java将保存所有的资源ID 3 assets 可以存放项目一些较大的资源文件 例如 图片 音乐 字体等 4 res 可以存放项目中所有的
  • IntelliJ IDEA 2022.3 版本 IDAE 的Java 编译器错误问题解决方法

    2022 2 3 版本 IDAE 的Java 编译器错误问题解决方法 如果这是按照以前的办法就是去更改下面 的内容就可以OK了 但是在最新版中无论怎么修改都是无用 不知道为啥 随后我就在这里 是的就是上面 的第二张图中 将11 versio
  • 设计模式——State(状态)模式

    目录 前言 1 定义 2 适用性 3 结构 3 1 结构图 3 2 参与者 4 应用举例 4 1 State TcpState 4 2 Context TcpConnection 4 3 ConcreteState ListeningTcp
  • 生产环境的域名地址与后端给的接口地址不一样时的配置(vue)

    1 找到 config dev env js 文件 module exports merge prodEnv NODE ENV development API ROOT http com 本地开发时用的域名 2 找到 config prod
  • 不在傻傻for循环!完美解决JPA批量插入问题

    前言 jpa在简单的增删改查方面确实帮助我们节省了大部分时间 但是面对复杂的情况就显得心有余而力不足了 最近遇到一个批量插入的情况 jpa虽然提供了saveAll方法 但是底层还是for循环save 如果遇到大量数据插入频繁与数据库交互必然
  • WIN11

    WIN11 安装WSL2 在WSL2上跑pytorch gpu 远程连接WSL2 个人电脑的关键配置 显卡是RTX3090 系统是WIN11 由于买的是整机 所以刚开机就装好了驱动 本人没有再进行显卡驱动 同时包含了wsl中的驱动 的安装
  • Android Log系统介绍 (基于Android N)

    原文使用有道云笔记创作 看这个 http note youdao com noteshare id 82f88b1c82652b80c27d54aad55af035 引言 gt Android 的log 从操作系统分层上来讲 可以分为 Ke
  • Linux内核驱动之GPIO子系统(一)GPIO的使用

    分类 Linux内核驱动 2012 10 31 21 12 162人阅读 评论 1 收藏 举报 目录 一 概述 Linux内核中gpio是最简单 最常用的资源 和 interrupt dma timer一样 驱动程序 应用程序都能够通过相应
  • Subwords Tokenizer方法介绍: BPE, Byte-level BPE, WordPiece, Unigram, SentencePiece

    参考于transformers tokenizer的文档 目录 Byte Pair Encoding BPE 1 出发点 原理 应用 Byte level BPE 2 出发点 原理 应用 WordPiece 3 原理 应用 Unigram
  • 一种踩内存的定位方法(C++)

    在嵌入式应用开发过程中 踩内存的问题常常让人束手无策 使用gdb调试工具 可以大幅加快问题的定位 不过 对于某些踩内存的问题 它的表现是间接的 应用崩溃的位置也是不固定的 这就给问题定位带来了更大的困难 笔者见过带有虚函数C 的类对象在试图
  • 2021春招已正式开启,阿里巴巴企业智能事业部内推,有意者看下文!

    前言 说一说已经拿到内推的两个朋友的面试经验 你们可以看一下准备一下 同事A阿里巴巴一面 55分钟 先介绍一下自己吧 说一下自己的优缺点 具体讲一下之前做过的项目 你觉得项目里给里最大的挑战是什么 Hashmap为什么不用平衡树 AQS知道
  • 程序员要不断学习

    2016 10 20 计算机技术的发展速度还是很快的 当个人电脑赶上10年前的超算时 我们不得不感叹硬件的发展编程开发带来了很大的影响 对世界带来了很大的影响 知识和工具的更新速度还是比较快的 这就要求程序员始终需要学习 我在知乎上看到一个
  • redis 配置与优化

    目录 一 关系数据库和非关系型数据库 二 关系型数据库和非关系型数据库区别 三 非关系型数据库产生背景 四 redis 1 概念 2 redis的优点 3 redis为什么这么快 五 redis安装与配置 一 关系数据库和非关系型数据库 关
  • Scrapy爬取图片自定义图片文件名时出现的问题

    目录 出现的问题 只下载了一张图片 图片的名称为最后一张图片的名称 但内容并不是最后一张图片的内容 在打印时 最后一张图片的相关信息出现多次 对应文件的相关信息 Items文件相关内容 Spider文件内容 Settings文件内容 Pip
  • 静态类(static class)、成员类(member class)、局部类(local class)、匿名类   (anonymous class)

    内部类定义 在一个类的内部定义一个类 内部类分为 静态类 static class 成员类 member class 局部类 local class 匿名类 anonymous class static class 作为类的静态成员存在于某
  • DDD专家张逸:构建领域驱动设计知识体系

    张逸 读完需要 5分钟 速读仅需 2 分钟 领域驱动设计专家 曾就职于 ThoughtWorks 作为 Lead Consultant 为客户提供架构设计 大数据分析 持续交付 代码质量 敏捷管理等咨询服务 著译作包括 软件设计精要与模式
  • 线性模型和非线性模型的区别,以及激活函数的作用

    线性模型和非线性模型的区别 以及激活函数的作用 线性模型和非线性模型的区别 a 线性模型可以用曲线拟合样本 线性模型可以是用曲线拟合样本 但是分类的决策边界一定是直线的 例如logistics模型 广义线性模型 将线性函数进行了一次映射 b
  • 华为OD机试(JAVA)真题 -- 数据分类

    对一个数据a进行分类 分类方法为 此数据a 四个字节大小 的四个字节相加对一个给定的值b取模 如果得到的结果小于一个给定的值c 则数据a为有效类型 其类型为取模的值 如果得到的结果大于或者等于c 则数据a为无效类型 比如一个数据a 0x01
  • 从《数学之美》中我想到的

    吴军老师作为NLP领域的专家 在 数学之美 中把各种高大上的技术介绍得如此通俗易懂 抛去了冗杂的公式 呈现出最原始的数学思想 能够把复杂的问题用最简单易懂的语言表达出来 看来吴军老师的数学功底 工程实践水平非同一般 在 数学之美 里面 谈到

随机推荐

  • 立创EDA(专业版)画PCB怎么开窗?

    阻焊层是开窗 助焊层是开钢网用的 大概的步骤 1 选择图层 顶层阻焊层 如果是想在顶层开窗 2 画个矩形框框 3 右击点击属性 选择顶层阻焊 4 利用3D PCB 观察 如果选择区域和有类似焊盘上的没有覆膜的管脚的那个黄铜的部分 成功了
  • 跨域与跨域访问

    什么是跨域 跨域是指从一个域名的网页去请求另一个域名的资源 比如从www baidu com 页面去请求 www google com 的资源 跨域的严格一点的定义是 只要 协议 域名 端口有任何一个的不同 就被当作是跨域 为什么浏览器要限
  • 两种接入微信小程序智能客服对话的方式

    微信小程序 此处提供两种接入微信小程序的方式 方式一 扫码将机器人绑定至指定小程序 通过小程序内的客服组件开启智能对话功能 方式二 通过小程序插件接入 方式一 后台扫码绑定 流程示意 效果展示 使用页面 小程序页面中 点击 客服按钮 官方组
  • QT 打印/输出 的 3种方法

    1 cout输出 include
  • 【复变函数】常用公式大全

    文章目录 基本公式 几个高斯的公式 其实都是留数法 留数法 一些公式 一些积分 欢迎纠错 基本公式 f z u
  • 华为5500v3多路径linux6,CentOS7 DM-Multipath+HUAWEI OceanStor存储多路径配置

    在参看了网上他人的配置 结合RedHat的技术白皮书实现后 自己亲身在CentOS7 HUAWEI OceanStore S2600T的基础上配置了一个DM Multipath存储多路径的实现 其中碰到了一些小问题和不明白的地方 书上感觉也
  • 5. TypeScript 接口

    TypeScript 接口 接口可以在面向对象编程中表示行为的抽象 也可以描述对象的形状 接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约 接口中不能含有具体的实现逻辑 1 函数接口参数 没有接口的写法 const fullNa
  • three.js开发全景视频播放器的现实方法

    业余弄弄three js 想用three js实现播放全景视频 研究了一段 搜索很多资料 感觉这一遍很棒 搜藏分享下 原理 将video标签拉伸显示在three js场景的一个球模型上 用相机在中间播放渲染 基础 基于three js官方案
  • IntelliJ IDEA 学习笔记 - 几个窗口布局设置技巧

    原文 https blog csdn net cgl125167016 article details 79000774 utm source copy IntelliJ IDEA 简体中文专题教程 编辑区分屏 IntelliJ IDEA
  • 下载Eclipse IDE

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 下载eclipse 二 安装语言包 一 下载eclipse Eclipse是一个开放源代码的 基于Java的可扩展开发平台 官方网站是https www ecl
  • 为 SQL Server 站点数据库服务器配置 SPN

    如何为 SQL Server 站点数据库服务器配置 SPN 主题上次更新时间 2008 年 1 月 使用 SQL Server 计算机的本地系统帐户运行 SQL Server 服务不是 SQL Server 最佳方案 为了最安全地运行 SQ
  • day 2

    定义一个学生的结构体 包含学生的姓名年龄 成绩 性别 学生的成绩姓名定义为私有权限 定义一个学生类型的结构体变量 设置共有函数用于给学生的成绩和名字进行赋值 include
  • 半导体成新资本洼地,国产化浪潮势不可挡

    配图来自Canva 近日 中芯国际成功登陆科创板 按照中芯国际发行价27 46元 股 发行16 86亿股计算 本次的募资金额是462 87亿元 比此前招股书规划的200亿元高出一倍多 在超额配售选择权行使后 发行总股数扩大至19 38亿股
  • Linux查看与挂载新磁盘

    问题 把CentOS都换成了Ubuntu Server 16 04 LTS 用df h查看磁盘占用情况 确发现之前插入的一块大容量磁盘 dev sdb1消失了 是磁盘坏了 还是没被系统识别 解决 1 用命令fdisk l查看新磁盘是否被系统
  • QSharedMemory在linux下异常崩溃导致的bug

    感谢这位博主 https blog csdn net xinluo7 article details 118226389 在Windows系统下 当程序出现崩溃 虽然没有主动调用QSharedMemory attach 但是系统会自动回收Q
  • Java+MyEclipse+Tomcat (三)配置MySQL及查询数据显示在JSP网页中

    前面两篇文章讲述了如何配置MyEclipse和Tomcat开发JSP网站 如何配置Servlet简单实现表单提交 这篇文章主要讲述配置MySQL实现数据库连接MyEclipse 最后将查询表中的数据显示在JSP网页中 文章主要以图片描述为主
  • Java 多线程编程(入门)

    目录 一 简单介绍 Thread类 1 Thread类中一些常用的方法 2 编写一个简单多线程程序 入门 二 Java中创建多线程的方法 重点面试题 1 继承 Thread 类 2 实现 Runnable 接口 重写 run 3 使用匿名内
  • 00.mipi协议

    mipi差分信号原理 理解mipi协议 MIPI DSI LP mode命令及格式详解 MIPI信号的分析 结合示波器实际测试波形 MIPI 移动行业处理器接口 是Mobile Industry Processor Interface的缩写
  • onlyoffice报 error self signed certificate导致download failed错误处理

    安装nextcloud onlyoffice 打开onlyoffice报错 进入容器看out log报错信息 root nextcloud docker ps a Emulate Docker CLI using podman Create
  • HTTP请求详解

    HTTP概念 HTTP全称是HyperText Transfer Protocal 即超文本传输协议 是应用层协议 当你上网浏览网页的时候 浏览器和web服务器之间就会通过HTTP在Internet上进行数据的发送和接收 HTTP是一个基于