当前位置: 首页 > news >正文

PHP(13)HTTP协议

PHP(13)HTTP协议

  • 一、HTTP请求
    • 1. 请求行
    • 2. 请求头
    • 3. 请求体
  • 二、HTTP响应
    • 1. 响应行
    • 2. 响应头
  • 三、设置HTTP响应
  • 四、模拟HTTP请求

一、HTTP请求

1. 请求行

  • 请求行独占一行。
  • 形式:请求方式 资源路径 协议版本号
    GET /index.php HTTP/1.1

2. 请求头

  1. Host:请求服务器的主机地址。
  2. Accept:当前请求能够接收服务器返回的类型(MIME类型)
  3. Accept-Language:接受的语言。
  4. User-Agent:客户浏览器的一些信息。

3. 请求体

  • 只有POST请求会有请求体。
  • 基本格式:资源名字=数据&资源名字=数据

二、HTTP响应

1. 响应行

  • 形式:协议版本号 状态码 状态信息
    HTTP/1.1 200 OK
    1. 200 ok:成功
    2. 403 Forbidden:没权限访问
    3. 404 Not Found:未找到页面
    4. 500 Server Internal Error:服务器内部错误。

2. 响应头

  1. 时间: Wed, 15 Feb 2023 11:23:39 GMT
  2. 服务器:Server: nginx
  3. 内容长度:Content-Length: 55
  4. 内容类型:Content-Type: text/html; charset=utf-8

三、设置HTTP响应

  • php中通过header函数来实现修改HTTP响应。
  • 注意事项:header设置响应体之前不要有任何输出。
  1. Location:立即重定向,一旦见到此协议项,不再向下解析。header('Location:/day10/upload_file02/index.html');
  2. Refresh:定时重定向,响应体会被解析。header('Refresh:5;url=/day10/upload_file02/index.html');
  3. Content-type:内容类型,MIME类型。
    header("Content-type:text/html;charset=utf-8");
  4. Content-disposition:内容类型,MIME扩展类型,通知浏览器不解析直接下载。header('Content-disposition:attachment;filename=f.jpg');

四、模拟HTTP请求

  • cURL是一个功能强大的开源库,支持HTTP、FTP、TELENT等协议。
  • 用于防盗链。

步骤:

  1. 开启cURL扩展。php.ini => extension=curl
  2. 建立连接:curl_init() => 激活一个cURL连接功能
  3. 设置请求选项:curl_setopt() => 设定选项,更多的设定选项看手册。
  4. 执行请求:curl_exec() => 执行选项(与服务器发起请求),得到服务器返回的内容。
  5. 关闭连接:curl_close => 关闭连接。
  • 示例:
<?php
echo "<pre>";
// 建立连接
$ch = curl_init();
// 设置连接对象
curl_setopt($ch, CURLOPT_URL, "http://learn.com/day10/upload_file02/index.html");
// 是否获取请求头
curl_setopt($ch, CURLOPT_HEADER, 1);
// 执行请求
$content = curl_exec($ch);
// 关闭简介
curl_close($ch);

在这里插入图片描述

相关文章:

PHP(13)HTTP协议

PHP&#xff08;13&#xff09;HTTP协议一、HTTP请求1. 请求行2. 请求头3. 请求体二、HTTP响应1. 响应行2. 响应头三、设置HTTP响应四、模拟HTTP请求一、HTTP请求 1. 请求行 请求行独占一行。形式&#xff1a;请求方式 资源路径 协议版本号 GET /index.php HTTP/1.1 2. 请求…...

基于支持向量机 (SVM) 用php实现预测气温

Windows 10自带的天气应用有一个基于历史数据预测气温的功能&#xff0c;有一定的参考价值。那么如何去实现这一功能呢&#xff1f;本文采用php进行实现。 使用机器学习方法实现预测当日气温的算法需要涵盖许多的步骤&#xff0c;以下是一种基于支持向量机 (SVM) 的算法的简化…...

MySQL(五)

通过索引进行优化 索引基本知识 索引的优点 1、大大减少了服务器需要扫描的数据量2、帮助服务器避免排序和临时表3、将随机io变成顺序io 索引的用处 1、快速查找匹配WHERE子句的行2、从consideration中消除行,如果可以在多个索引之间进行选择&#xff0c;mysql通常会使用找到…...

Linux常用命令2

目录1.查找find&#xff08;1&#xff09;普通用法&#xff08;2&#xff09;组合用法2.xargs命令3.管道符4.查看文件内容(1)查看两个文件的差别&#xff1a;diff file1 fille2(2)正序查看文件内容cat(3)倒序查看文件内容tac(4)分页查看文件内容more(5)分页查看文件内容less(6)…...

『C/C++养成计划』Visual Studio Code编辑器配置(外观通用型扩展Minmal)

Visual Studio Code编辑器配置(外观&通用型扩展&Minmal)! 文章目录 一. vscode配置外观|通用型扩展1.1. 色彩主题配置扩展(GitHub Theme)1.2. 图标主题扩展(Material Icon Theme)1.3. 代码高亮扩展(better-comments)1.4. 错误警告扩展(error lens)1.5. 执行代码扩展(c…...

设计模式(适配器模式)

设计模式&#xff08;适配器模式&#xff09; 第二章 设计模式之适配器模式&#xff08;Adapter&#xff09; 一、Adapter模式介绍 适配器模式位于实际情况和需求之间&#xff0c;填补两者之间的差距。 二、示例程序1&#xff08;使用继承的适配器&#xff09; 1.示例程序示…...

在基于全志D1s的芒果派麻雀上运行国产开源rt-smart系统

想必RT-Thread系统大家不陌生了&#xff0c;RT-Thread Smart&#xff08;简称 rt-smart&#xff09;是基于 RT-Thread 操作系统衍生的新分支&#xff0c;面向带 MMU&#xff0c;中高端应用的芯片&#xff0c;例如 ARM Cortex-A 系列芯片&#xff0c;MIPS 芯片&#xff0c;带 MM…...

【代码随想录训练营】【Day15】第六章|二叉树|层序遍历|226.翻转二叉树|101.对称二叉树

层序遍历 题目详细&#xff1a;LeetCode.102 层序遍历与上一节讲的三种遍历方式有所不同&#xff0c;层序遍历是指按从上到下&#xff0c;从左到右的顺序&#xff0c;逐层地遍历二叉树的节点。 从其节点的遍历顺序上观察&#xff0c;我们可以发现其跟广度优先遍历&#xff0…...

基于圆展开自适应三边测量算法的室内定位

基于圆展开自适应三边测量算法的室内定位 具有无线通信功能的移动设备的日益普及刺激了室内定位服务的增长。室内定位用于实时定位设备位置&#xff0c;方便访问。然而&#xff0c;由于大量障碍物&#xff0c;与室外定位相比&#xff0c;室内定位具有挑战性。全球定位系统非常适…...

使用中断子系统实现对LED灯的控制

中断顶半部&#xff1a;不允许耗时操作 代码流程&#xff1a; 1、基于字符设备驱动的注册&#xff08;手动/自动&#xff09; 2、基于设备树文件的自定义完成(myled, myirq) 2、基于GPIO子系统实现led的点亮&#xff08;流水/测试文件控制&#xff09; 3、中断子系统操作流程 …...

《爆肝整理》保姆级系列教程python接口自动化(十五)--参数关联接口(详解)

简介 我们用自动化新建任务之后&#xff0c;要想接着对这个新建任务操作&#xff0c;那就需要用参数关联了&#xff0c;新建任务之后会有一个任务的Jenkins-Crumb&#xff0c;获取到这个Jenkins-Crumb&#xff0c;就可以通过传这个任务Jenkins-Crumb继续操作这个新建的任务。 …...

【JDK8】MyBatis源码导入Idea

1.背景 为了更好的将MyBatis的开发设计思想带到日常开发工作&#xff0c;将MyBatis源码导入到本地开发工具中(idea)。我自己在导入的时候碰到几个问题&#xff0c;耽误了自己一点时间&#xff0c;这里我把它们记下来&#xff0c;后边的小伙伴可不要踩我的坑。 Java版本&#x…...

三层交换机DHCP中继

关于中继&#xff0c;我们需要有一个对比。正常情况下我们是不是需要配置单臂路由然后开启DHCP地址池&#xff0c;然就设置网段网关以及DNS。这样的话考验 的其实是命令功底。但是为了方便&#xff0c;我们 可以添加服务器&#xff0c;将这个服务给到服务器去配置&#xff0c;这…...

C++之RALL机制

RALL是Resource acquisition is initialization的缩写&#xff0c;意思是“资源获取即初始化”&#xff0c;其核心思想是利用C对象生命周期的概念来控制程序的资源。它的技术原理很简单&#xff0c;如果希望对某个重要资源进行跟踪&#xff0c;那么创建一个对象&#xff0c;并将…...

回溯算法章末总结

组合问题的特点 &#xff08;1&#xff09;abba 选中a之后&#xff0c;就不再选了 &#xff08;2&#xff09;找出所有的组合 &#xff08;长度可以不相等&#xff09; 组合问题模板 做回溯题步骤 &#xff08;0&#xff09;判断问题类型 &#xff08;1&#xff09;树状图 …...

【SpringBoot】为异步任务规划线程池

一、线程池的作用 防止资源占用无限的扩张调用过程省去资源的创建和销毁所占用的时间 在上一节中&#xff0c;我们的一个异步任务打开了一个线程&#xff0c;完成后销毁。在高并发环境下&#xff0c;不断的分配新资源&#xff0c;可能导致系统资源耗尽。所以为了避免这个问题…...

SAP ABAP 输出结果带有空格

方法一&#xff1a; 字段内容前增加空格&#xff0c;需使用全角空格&#xff0c;使用半角空格时&#xff0c;ALV显示无效&#xff0c;空格无法显示&#xff0c; 全角与半角的切换方法&#xff1a;shift空格切换&#xff0c; 如下的标记部分&#xff0c;要想通过ALV显示空格&…...

Opengl ES之踩坑记

前因 最近在尝试使用Opengl ES实现一些LUT滤镜效果&#xff0c;在实现这些滤镜效果的时候遇到一些兼容性的坑&#xff0c;踩过这些坑后我希望把这几个坑分享给读者朋友们&#xff0c; 希望同在学习Opengl ES的朋友们能少走弯路。 关于LUT滤镜相关的介绍&#xff0c;也是这个O…...

设计模式第六讲:责任链模式和迭代器模式详解

一. 责任链模式1. 背景在现实生活中&#xff0c;常常会出现这样的事例&#xff1a;一个请求有多个对象可以处理&#xff0c;但每个对象的处理条件或权限不同。例如&#xff0c;公司员工请假&#xff0c;可批假的领导有部门负责人、副总经理、总经理等&#xff0c;但每个领导能批…...

K8s 架构简介(一)

一、前言 在开始学习K8s之前&#xff0c;让我们对容器有一个基本的了解 1.1 什么是容器 一个容器镜像是一个可运行的软件包&#xff0c;其中包含了一个完整的可执行程序&#xff0c;包括代码和运行时需要应用、系统库和全部重要设置的默认值。 通过将应用程序本身&#xff…...

量子安全与后量子密码学:awesome-quantum-software中的加密工具

量子安全与后量子密码学&#xff1a;awesome-quantum-software中的加密工具 【免费下载链接】awesome-quantum-software Curated list of open-source quantum software projects. 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-quantum-software 在后量子计算时…...

Thorium浏览器实战指南:为什么这个Chromium分支能让你告别卡顿与隐私泄露?

Thorium浏览器实战指南&#xff1a;为什么这个Chromium分支能让你告别卡顿与隐私泄露&#xff1f; 【免费下载链接】thorium Chromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, li…...

从U盘启动OpenWRT:零门槛打造你的x86软路由实验平台

1. 为什么选择U盘启动OpenWRT软路由&#xff1f; 去年我帮朋友改造旧笔记本时&#xff0c;偶然发现用U盘跑OpenWRT简直是个宝藏方案。相比直接刷入硬盘&#xff0c;U盘启动有三大不可替代的优势&#xff1a;零成本实验、无损体验和随身携带。你完全可以用吃灰的旧U盘&#xff0…...

微信好友关系检测工具完整指南:如何快速发现谁删除了你

微信好友关系检测工具完整指南&#xff1a;如何快速发现谁删除了你 【免费下载链接】WechatRealFriends 微信好友关系一键检测&#xff0c;基于微信ipad协议&#xff0c;看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends …...

告别‘涂抹感’:深入浅出聊聊Chromatix ISP里ABF模块的‘边缘保留’与‘噪声消除’如何平衡

告别‘涂抹感’&#xff1a;深入浅出聊聊Chromatix ISP里ABF模块的‘边缘保留’与‘噪声消除’如何平衡 在手机摄影普及的今天&#xff0c;我们常常会遇到这样的困扰&#xff1a;夜间拍摄的照片要么噪点明显&#xff0c;要么经过降噪处理后变得模糊不清&#xff0c;丢失了细节…...

深度解析MSPM0G3106数据手册:从80MHz Cortex-M0+内核到电机控制实战

1. 项目概述&#xff1a;为什么是MSPM0G3106&#xff1f;如果你最近在寻找一款兼具高性能、低功耗和成本效益的微控制器&#xff0c;用于电机控制、数字电源或者需要复杂模拟信号处理的场合&#xff0c;那么TI的MSPM0G系列很可能已经进入了你的视野。而其中的MSPM0G3106&#x…...

「国内直连」Claude Code安装与API配置保姆级教程:从Node.js到调用,小白少踩坑(亲测跑通)

前言 国内用户最头疼的就是海外账号和网络问题&#xff0c;其实找对中转接口就能省不少事。 这篇文章把从Node.js安装到Claude Code启动的全流程整理清楚&#xff0c;用88api做接口中转&#xff08;国内直连&#xff0c;不用翻墙&#xff09;&#xff0c;尽量让每个步骤都能照…...

在Node.js后端服务中集成Taotoken调用多模型AI功能的指南

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Node.js后端服务中集成Taotoken调用多模型AI功能的指南 对于Node.js开发者而言&#xff0c;在后端服务中集成AI能力正变得日益普…...

LabVIEW多语言界面开发:基于JKI Simple Localization的控件本地化实战

1. 项目概述与核心思路 在开发面向全球用户的LabVIEW应用程序时&#xff0c;多语言界面支持是一个绕不开的刚需。想象一下&#xff0c;你的测控软件或工业自动化系统需要部署到不同国家&#xff0c;如果每次都要为不同语言单独开发一套界面&#xff0c;那工作量无疑是巨大的&am…...

瑞萨RA2L2 MCU深度解析:USB-C Rev 2.4与超低功耗设计实战

1. 项目概述&#xff1a;瑞萨RA2L2 MCU的定位与核心价值作为一名在嵌入式领域摸爬滚打了十多年的老工程师&#xff0c;每当看到像瑞萨RA2L2这样的新品发布&#xff0c;我的第一反应不是看那些华丽的参数&#xff0c;而是会立刻思考&#xff1a;这玩意儿到底能解决我手头项目里的…...