🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
浏览器端发送的信息 **http请求:** 请求行 消息头 消息体(实体内容,发送的数据) accept:可以接收什么类型 的数据 referer:请求从哪儿来的 accpt-langage:浏览器可以接收什么语言 user-agent:告诉服务器我的系统信息 accpet-encodeing:表示接收什么样的数据压缩格式 host: 80 主机:端口 ~~~ GET /1.php HTTP/1.1 //请求头:get为请求的方法,请求资源:www.php.com /1.php Accept: text/html, application/xhtml+xml, */* //客户端可以接受什么类型的信息 */*任何数据类型 referer:.................................//表名这个页面是从哪儿来的,根据值可以进行对应操作 X-HttpWatch-RID: 18845-10009 Accept-Language: zh-CN //接受的语言 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko //告诉服务器浏览器操作系统信息 Accept-Encoding: gzip, deflate //支持什么样的压缩形式,数据发送的时候压缩,节省带宽 Host: www.php.com //请求的主机 DNT: 1 Connection: Keep-Alive //这是个长连接 ~~~ 浏览器接收的信息 ~~~ HTTP/1.1 200 OK Date: Sun, 16 Oct 2016 05:43:30 GMT Server: Apache/2.4.10 (Win32) OpenSSL/0.9.8zb PHP/5.3.29 X-Powered-By: PHP/5.3.29 Content-Length: 24 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html //以上是为了告诉浏览器如何展示信息,在浏览器里面是不会输出的 <meta charset='utf-8'>80 ~~~ ![](https://box.kancloud.cn/ec5f54ed910d4859140ed8739af4c447_978x524.png) ![](https://box.kancloud.cn/954819e7f6e4e9f8a23ad40c52dda540_943x429.png) ## 获取发送的信息:$_SERVER ~~~ foreach ($_SERVER as $key => $value) { echo $key."=".$value."<br/>"; } ~~~ 服务器二次封装后,加入新的内容 输出的信息: ~~~ HTTP_ACCEPT=text/html, application/xhtml+xml, */* HTTP_X_HTTPWATCH_RID=18845-10130 HTTP_ACCEPT_LANGUAGE=zh-CN HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko HTTP_ACCEPT_ENCODING=gzip, deflate HTTP_HOST=www.php.com HTTP_DNT=1 HTTP_CONNECTION=Keep-Alive PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Common Files\microsoft shared\TigerKin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Common Files\microsoft shared\TigerKin;d:\soft\less;C:\Program Files\nodejs\; SystemRoot=C:\Windows COMSPEC=C:\Windows\system32\cmd.exe PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC WINDIR=C:\Windows SERVER_SIGNATURE= SERVER_SOFTWARE=Apache/2.4.10 (Win32) OpenSSL/0.9.8zb PHP/5.3.29 SERVER_NAME=www.php.com SERVER_ADDR=127.0.0.1 SERVER_PORT=80 REMOTE_ADDR=127.0.0.1 DOCUMENT_ROOT=D:/www/php REQUEST_SCHEME=http CONTEXT_PREFIX= CONTEXT_DOCUMENT_ROOT=D:/www/php SERVER_ADMIN=admin@phpStudy.net SCRIPT_FILENAME=D:/www/php/1.php REMOTE_PORT=52088 GATEWAY_INTERFACE=CGI/1.1 SERVER_PROTOCOL=HTTP/1.1 REQUEST_METHOD=GET QUERY_STRING= REQUEST_URI=/1.php SCRIPT_NAME=/1.php PHP_SELF=/1.php REQUEST_TIME=1476601120 ~~~ 在服务器端,通过预定义数组$_SERVER,获取指定信息 常用: 端口号:SERVER_PORT 客户端IP:REMOTE_ADDR apache主目录:DOCUMENT_ROOT 从哪个页面来的:HTTP_REFERER 主机名:HTTP_ROOT 请求串:REQUEST_URI 获取请求的资源名 浏览器:HTTP_USER_AGENT PHP版本:SERVER_SOFTWARE ## 请求种类: post get head options delete trace put post和get区别 1. 安全性 get会显示在地址栏 post放在http协议的消息体里面 2. 从提交数据大小来看 http协议没有限制,但是浏览器有限制,get数据是2k+35,post请求没有限制 3. get请求添加到收藏夹更方便