浏览器端发送的信息
**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请求添加到收藏夹更方便