前端学习之路---php(HTTP)

本文深入解析HTTP协议,涵盖其定义、请求与响应机制、状态码解读及应用场景,如设置响应类型、重定向与图片防盗链。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 定义
    HTTP(HyperText Transfer Protocol,超文本传输协议)最早就是计算机与计算机之间沟通的一种标准协议,这
    种协议限制了通讯 内容的格式以及各项 内容的含义。                                                  随着时代的发展,技术的变迁,这种协议现在广泛的应用在各种领域,也不仅仅局限于计算机与计算机之间,手
    机、电视等各种智能设备很多时候都在使用这种协议通讯,所以一般现在称 HTTP 为端与端之间的通讯协议。
    Web 属于 B/S 架构的应用软件,在 B/S 架构中,浏览器与服务器沟通的协议就是 HTTP 协议,作为一个合格的
    Web 开发者,了解 HTTP 协议中约定的内容是一门必修课。                                                                                                    应用软件架构一般分为两类:
    B/S 架构:Browser(浏览器) ←→ Server(服务器),这种软件都是通过浏览器访问一个网站使用,
    服务器提供数据存储等服务。
    C/S 架构:Client(客户端) ←→ Server(服务器),这种软件通过安装一个软件到电脑,然后使用,
    服务器提供数据存储等服务。
  2. 约定内容
    请求 / 响应报文格式
    请求方法 —— GET / POST
    响应状态 —— 200 / 404 / 302 / 304
    预设的请求 / 响应头
  3. 约定形式
    1. 客户端通过随机端口与服务端某个固定端口(一般为80) 建立连接 三次握手
    2. 客户端通过这个连接 发送请求到服务端(这里的请求是名词)
    3. 服务端监听端口得到的客户端发送过来的请求
    4. 服务端通过连接响应给客户端状态和内容
    要求:接下来的一个月,每次上网打开任何一个页面时都要能够脑补这个画面,默念这个流程。
  4. 核心概念                                                                                                                                                                                    请求报文                                                                                                                                                                                                                      请求行
    GET /demo.php HTTP/1.1
    请求方式 + 空格 + 请求路径 + 空格 + HTTP 协议版本
    请求头
    客户端想要告诉服务端的一些额外信息,以下为常见的请求头:

    请求体
    这次请求客户端想要发送给服务端的数据正文,一般在 GET 请求时很少用到,因为 GET 请求主观上都是去“拿东
    西”。

  5. 响应报文                                                                                                                                                                                                                                             状态行
    HTTP/1.1 200 OK
    HTTP 协议版本 + 空格 + 状态码 + 空格 + 状态描述
    响应头
    服务端想要告诉客户端的一些额外信息,常见的有以下:

    如果需要在程序中设置自定义的响应头(不是预设的),建议使用 X-Property-Name
    响应体                                                                                                                                                                                    这次请求服务端想要返回给客户端的数据正文,一般返回的都是 HTML,也可以返回 JavaScript 或者 CSS(需要修
    改响应头中的响应类型)。

  6. 应用场景
    设置响应文件类型
    header('Content-Type: text/css');
    HTTP MIME type 指的就是 像 text/css text/html text/plain applcation/javascript
    重定向(跳转到其他网页)
    header('Location: https://www.baidu.com');
    下载文件

    // 让文件下载
    header('Content‐Type: application/octet‐stream');
    // 设置默认下载文件名
    header('Content‐Disposition: attachment; filename=demo.txt');

    图片防盗链
    通过判断请求来源 Referer 是否为本网站从而区分是否是合法请求

  7. 请求方式
    http://www.w3school.com.cn/tags/html_ref_httpmethods.asp
    http://www.runoob.com/http/http-methods.html
     GET
    字面意思:拿,获取
     POST
    字面意思:发,给
     对比 GET 与 POST

     

  8.  状态码
    了解即可,不用刻意去记忆,用多了自然就忘不了。
    http://www.w3school.com.cn/tags/html_ref_httpmessages.asp
    状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
    1xx:指示信息 —— 表示请求已接收,继续处理。
    2xx:成功 —— 表示请求已被成功接收、理解、接受。                                                                                                            3xx:重定向 —— 要完成请求必须进行更进一步的操作。
    4xx:客户端错误 —— 请求有语法错误或请求无法实现。
    5xx:服务器端错误 —— 服务器未能实现合法的请求。
    常见状态代码、状态描述的说明如下。
    200 OK:客户端请求成功。
    400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
    401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用。
    403 Forbidden:服务器收到请求,但是拒绝提供服务。
    404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
    500 Internal Server Error:服务器发生不可预期的错误。
    503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值