web中的HTTP协议
HTTP协议(HyperText Transfer Protocol 超文本传输协议),是浏览器接收web页面和发送web页面请求的标准协议。HTTP协议是基于TCP/IP协议的,版本号有Http1.0和Http1.1两种,现在主要使用Http1.1版本。
HTTP协议包含大量的消息头信息,用户告诉浏览器或者服务器,该消息体想做什么...而消息体是告诉浏览器或者服务器,它也是我们添加的网页信息,具体该怎么做...
网页在传输过程中,HTTP的消息头是十分重要的...那么PHP是如何操作消息头的呢?
一、PHP中的$_SERVER数组
$_SERVER数组是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。
- 获取浏览当前页面的IP地址:
$_SERVER['REMOTE_ADDR']
- 防盗链技术的实现
$_SERVER['HTTP_REFERER']:引导用户代理到当前页的前一页的地址
示例:
<?php
//http防盗链技术
if(isset($_SERVER['HTTP_REFERER'])){ //判断是否有该属性值(外网没有,本网有)
//定义字符串出现的第一个位置
if(strpos($_SERVER['HTTP_REFERER'],'http://localhost/phpWeb/7-25/')==0){ //判断是否来自本网站
echo '你好,欢迎访问';
}else{
header("Location:err.php");
}
}else{ header("Location:err.php"); //重新定义报头信息,进行跳转
}
?>
二、PHP中的header函数
PHP中的header函数用于服务器端重新定义http的消息头。
- 跳转到另一个页面
header('Location:url');
- 网页禁止缓存
//由于浏览器的差别,不同浏览器有不同的禁缓存结构,通常三个都写...
header('Expires:-1');
header('Cache-Control:no-cache');
header('Pragma:no-cache');
- 等待几秒后自动跳转到另一页面
示例:
<?php
echo '5秒后自动跳转到百度首页面';
header('Refresh:5,url=http://www.baidu.com'); //等待5秒后,自动重新定向到百度首页面
?>
- 文件下载
header('Content-type:application/octet-stream');
header('Accept-Ranges:bytes');
header("Accept-Length:$file_size");
header("Content-Disposition:attachment;filename=".$filename);
function filedown($filename){ //转换文件名编码,防止乱码(针对中文汉字,php文件中需将utf-8码转换为gb2312。古老的文件系统只识别gb2312码)
$filename=iconv('utf-8','gb2312',$filename); //判断文件是否存在
if(!file_exists($filename)){
echo '文件不存在';
return ;
} //计算文件大小
$file_size=filesize($filename); //返回文件
header('Content-type:application/octet-stream');
header('Accept-Ranges:bytes');
header("Accept-Length:$file_size");
header("Content-Disposition:attachment;filename=".$filename); //打开文件
$fp=fopen($filename,"r"); $buffer=1024; //一次读出多少内容,单位(byte)
//读取文件并输出
while(!feof($fp)){ //判断文件是否读完
$res=fread($fp,$buffer);
echo $res;
} //关闭文件
fclose($fp);
}
三、http请求数据时,get和post方法的区别
1、安全性:get方法请求数据时,数据显示在地址栏和http请求行中
post方法请求的数据时,数据放在消息体中,更安全。
2、提交的数据量大小:get请求的数据量大小为(2k+35)字节
post无限制(由于数据在消息体中)
3、利用收藏夹收藏页面时,get方法更有利于保存..
四、http响应状态码
服务器端响应格式:HTTP版本号 状态码 原因
状态码:
100~199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程
200~299:表示成功接收请求并已完成整个处理过程,常用200
300~399:为完成请求,客户需进一步细化请求,例如,请求的资源已经移动到一个新地址,常用302、304
400~499:客户端的请求有错误,常用404
500~599:服务器端出现错误,常用500
web中的HTTP协议的更多相关文章
- 【笔记JS/HTML/CSS】web中的HTTP协议(1)
最近都在coursera刷课,加上自己课业也忙起来了,总是忘记写学习笔记ORZ 自省ing... 在写HTML的时候,form表单需要通过HTTP协议向服务器提交.查询数据(如下图) 客户端通过HTT ...
- 优化Web中的性能
优化Web中的性能 简介 web的优化就是一场阻止http请求最终访问到数据库的战争. 优化的方式就是加缓存,在各个节点加缓存. web请求的流程及节点 熟悉流程及节点,才能定位性能的问题.而且优化的 ...
- 详解Objective-C中委托和协议
Objective-C委托和协议本没有任何关系,协议如前所述,就是起到C++中纯虚类的作用,对于“委托”则和协议没有关系,只是我们经常利用协议还实现委托的机制,其实不用协议也完全可以实现委托. AD: ...
- Web中的性能优化
优化Web中的性能 简介 web的优化就是一场阻止http请求最终访问到数据库的战争.优化的方式就是加缓存,在各个节点加缓存. web请求的流程及节点 熟悉流程及节点,才能定位性能的问题.而且优化的顺 ...
- 在web中使用HTTPS
背景 目前网上流行的是HTTP协议,HTTPS协议还在逐步推广的过程中. HTTP协议以明文发送内容,容易被攻击者窃听.HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份[ ...
- Web应用与应用层协议
Web应用与应用层协议 本篇博文中的主要参考文献是<计算机网络高级教程>,分别是吴功宜老先生和吴英教授合著.这部教程是我研究生老师所推荐的网络必读科目,由于该教程讲解的基础知识详细,但内容 ...
- web应用与http协议
web应用 Web应用程序是一种可以通过web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件. 应用程序有两种模式C/S.B/S.C/S是客户端/ ...
- 第五章Web应用与应用层协议
Web应用与应用层协议 本篇博文中的主要参考文献是<计算机网络高级教程>,分别是吴功宜老先生和吴英教授合著.这部教程是我研究生老师所推荐的网络必读科目,由于该教程讲解的基础知识详细,但内容 ...
- 08.Web服务器-2.HTTP协议介绍
HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF ...
随机推荐
- PHP7 - MongoDB Driver 使用心得
php7 只能使用Mongodb driver来驱动mongodb. 使用Mongodb Driver连接数据库 刚开始使用Mongodb Driver的时候我是拒绝的.查看官方文档只看到一排的类和不 ...
- 【bzoj3998】弦论 后缀自动机
Description 对于一个给定长度为N的字符串,求它的第K小子串是什么. Input 第一行是一个仅由小写英文字母构成的字符串S 第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个. ...
- 扩展jQuery高亮网页中的文本选中
<script type="text/javascript"> //1.扩展jQuery $.fn.selectRange = function (start, end ...
- 编写高质量代码:Web前端开发修炼之道(一)
最近老大给我们买来一些技术方面的书籍,其实很少搬着一本书好好的完整的看完过,每每看电子档的,也是打游击式的看看这章,瞅瞅那章,在那5本书中挑了一本比较单薄的<编写高质量代码web前端开发修炼之道 ...
- COCI2017-2018#3 Dojave || 洛谷P4443
题目传送门............................................................................................... ...
- LeetCode记录之7——Reverse Integer
Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 Note:The ...
- HDU_1846 Brave Game 【巴什博弈】
题目: 十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻. 今天, ...
- Codeforces - 527C 平衡树维护几何
题意:给定一个矩形\(W*H\),一共\(n\)次切割操作(水平/垂直),求每次操作后得出的最大面积 随机按tag扫CF题目找到的题,可以分别用平衡树维护割边的位置和长度(\(x/y\)各两个) 具体 ...
- [水题AC乐] - 贪心
HDU - 1009 https://paste.ubuntu.com/p/rgSYpSKkwW/ POJ - 1017 麻烦的模拟 贪心 题意就是用尽量少的66h箱子装nnh的物品,贪心策略很明显, ...
- HDU - 1588 矩阵前缀和
题意:给定\(k,b,n,m\),求\(\sum_{i=0}^{n-1}f(g(i))\) 其中\(f(i)=f(i-1)+f(i-2),f(1)=1,f(0)=0\),\(g(i)=k*i+b\) ...