修改HTTP header

下面这些header指令常常会用到,记得刚工作的时候写的一个网络磁盘就用到下载文件的header。header还可以用来控制客户端浏览器和代理服务器的缓存,这些以前有做过笔记.

  1. //用这个header指令来解决URL重写产生的404 header
  2. header('HTTP/1.1 200 OK');
  3. // 页面没找到
  4. header('HTTP/1.1 404 Not Found');
  5. // 访问受限
  6. header('HTTP/1.1 403 Forbidden');
  7. // The page moved permanently should be used for
  8. // all redrictions, because search engines know
  9. // what's going on and can easily update their urls.
  10. //页面被永久删除,可以告诉搜索引擎更新它们的urls
  11. //PS:第一次碰到这个指令,不知道能不能用来把自己的站点从搜索引擎中删除呢?
  12. header('HTTP/1.1 301 Moved Permanently');
  13. // 服务器错误
  14. header('HTTP/1.1 500 Internal Server Error');
  15. // 重定向到一个新的位置
  16. header('Location: http://www.example.org/');
  17. // 延迟一段时间后重定向
  18. header('Refresh: 10; url=http://www.example.org/');
  19. print 'You will be redirected in 10 seconds';
  20. // 也可以使用HTML语法来实现延迟
  21. // <meta http-equiv="refresh" content="10;http://www.example.org/ />
  22. // 覆盖 X-Powered-By value
  23. header('X-Powered-By: PHP/4.4.0');
  24. header('X-Powered-By: Brain/0.6b');
  25. // 内容语言 (en = English)
  26. header('Content-language: en');
  27. // 最后修改时间(在缓存的时候可以用到)
  28. $time = time() - 60; // or filemtime($fn), etc
  29. header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');
  30. // 告诉浏览器要获取的内容还没有更新
  31. header('HTTP/1.1 304 Not Modified');
  32. // 设置内容的长度 (缓存的时候可以用到):
  33. header('Content-Length: 1234');
  34. // 用来下载文件:
  35. header('Content-Type: application/octet-stream');
  36. header('Content-Disposition: attachment; filename="example.zip"');
  37. header('Content-Transfer-Encoding: binary');
  38. // 加载要下载的文件:
  39. readfile('example.zip');
  40. // 禁止缓存当前文档:
  41. header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
  42. header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
  43. header('Pragma: no-cache');
  44. // 设置内容类型:
  45. header('Content-Type: text/html; charset=iso-8859-1');
  46. header('Content-Type: text/html; charset=utf-8');
  47. header('Content-Type: text/plain'); // plain text file
  48. header('Content-Type: image/jpeg'); // JPG picture
  49. header('Content-Type: application/zip'); // ZIP file
  50. header('Content-Type: application/pdf'); // PDF file
  51. header('Content-Type: audio/mpeg'); // Audio MPEG (MP3,...) file
  52. header('Content-Type: application/x-shockwave-flash'); // Flash animation
  53. // 显示登录对话框,可以用来进行HTTP认证
  54. header('HTTP/1.1 401 Unauthorized');
  55. header('WWW-Authenticate: Basic realm="Top Secret"');
  56. print 'Text that will be displayed if the user hits cancel or ';
  57. print 'enters wrong login data';
### HTTP Header Live 工具使用指南 HTTP Header Live 是一款用于捕获和分析 HTTP 请求与响应的工具,广泛应用于调试网络通信、测试 API 接口以及研究 Web 应用程序的行为。以下是关于该工具的详细使用方法: #### 1. 安装工具 在 Firefox 浏览器中安装 Live HTTP Headers 插件,可以通过以下步骤完成: - 打开终端并输入命令下载插件文件: ```bash wget http://labfile.oss.aliyuncs.com/courses/640/live_http_headers.xpi ``` - 下载完成后重启浏览器,进入菜单 `打开菜单–>附加组件–>扩展`,找到已安装的插件,并点击“首选项”按钮[^2]。 - 在弹出的配置窗口中,勾选 `Config` 选项卡下的 `Open LiveHTTPHeaders in a new tab`,以便于后续操作更加便捷。 #### 2. 启动方式 根据具体需求选择不同的启动模式: - **仅监视通信量**:从浏览器的“查看”菜单中选择“侧栏”,然后选择 `Live HTTP Headers` 菜单项[^1]。 - **启用完整功能**:通过单击“工具”菜单中的 `Live HTTP Headers` 项来启动工具,以访问所有高级特性。 #### 3. 查看 HTTP 请求与响应信息 启动工具后,用户可以实时监控 HTTP 请求和响应数据。例如: - **请求行**:`POST /polls/login HTTP/1.1` - **请求头**:包含诸如 `Content-Type` 和 `Content-Length` 等字段。 - **实体内容**:如 `name=shiyanlou&pwd=shiyanlou&commit=Login`,表示提交的表单数据。 - **响应行**:如 `HTTP/1.0 302 Found`,表明服务器返回了重定向状态码。 - **响应头**:如 `Set-Cookie` 字段,说明服务器向客户端发送了一个会话 Cookie[^2]。 #### 4. 修改和重放数据包 Live HTTP Headers 提供了修改和重放 HTTP 数据包的功能。然而需要注意的是,在某些版本的 Firefox 浏览器(如 43 及更高版本)中,可能存在兼容性问题,导致修改后的 POST 数据包无法正确重放[^3]。如果遇到此类问题,建议尝试以下解决方法: - 使用更早版本的 Firefox 浏览器。 - 寻找替代工具,例如 Fiddler 或 Burp Suite。 #### 5. 注意事项 - 确保插件已正确安装并启用。 - 如果需要频繁使用工具,推荐将工具设置为在新标签页中打开。 - 对于复杂场景,可能需要结合其他调试工具一起使用。 ```python # 示例代码:模拟一个简单的 HTTP 请求 import requests url = "http://example.com/api" headers = { "Content-Type": "application/json", "Authorization": "Bearer your_token_here" } data = {"key": "value"} response = requests.post(url, headers=headers, json=data) print(response.status_code) print(response.text) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值