http是超文本传输协议,是TCP/IP协议族中最重要的协议之一
以APACHE+PHP为例,一次访问页面大概过程是:
1、用浏览器去访问一个http页面或其他资源
2、先去解析url中的域名或ip地址,再去查找本地的hosts文件中的域名和对应的Ip,如果在hosts文件有对应的项,就会向对应的IP地址发送请求,如果没有再去DNS查找域名对应的IP地址,再去发送请求
3、去尝试与服务器连接,查看是否连通
4、再去请求http页面或其他资源,
5、服务器端的apache,根据地址去查找相应的资源,如果是PHP文件,会先将PHP文件交给PHP模块去处理,将处理后的结果返回给apache
6、apache再将静态的页面传给客户端浏览器,
7、浏览器再根据返回的结果显示为对应的页面
一个HTML页面
<h1>http</h1>
<img src="http://www.baidu.com/img/baidu_sylogo1.gif" />
<img src="http://www.baidu.com/img/baidu_sylogo1.gif" />
<img src="ogo1.gif" />
会有3个请求,1、HTML页面文件,2、http://www.baidu.com/img/baidu_sylogo1.gif,3、ogo1.gif
ogo1.gif对应的头信息
Request URL:http://localhost/test/ogo1.gif 请求地址
Request Method:GET 请求方式
Status Code:404 Not Found 状态代码 404 表示没有找到
Request Headers 为请求报头
GET/test/ogo1.gif HTTP/1.1 请求方式get 资源 协议
Host: localhost 主机地址、端口,端口默认为80
Connection: keep-alive连接方式
Cache-Control: max-age=0 表示经过0s会失效
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.19 (KHTML, likeGecko) Chrome/18.0.1025.142 Safari/535.19 客户端信息
Accept: */* 收的文件类型
Referer: http://localhost/test/http.html 表示请求这个资源的来源地址,可以根据它来设置防盗链
Accept-Encoding: gzip,deflate,sdch 接收的数据压缩格式
Accept-Language: zh-CN,zh;q=0.8 接收的语言
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3 接收的字符集
Cookie: PHPSESSID=435f8c621a055d8ec31d5b8b2a82322b Cookie信息
Response Headers 为响应报头
HTTP/1.1 404 Not http协议 404 表示没有找到
FoundDate: Thu, 05 Apr 2012 06:18:31 GMT 查找时间
Server: Apache/2.2.4 (Win32)PHP/5.2.3 服务器的信息
Last-Modified: Thu, 29 Mar2012 07:25:44 GMT 上次修改时间
ETag:"23a3f-84-a1c70812;7fc477ef" 用于标识该url对象是否有修改
Accept-Ranges: bytes 是否支持断点续传,为bytes表示支持,若为none表示不支持
Content-Length: 132 表示当前会话字节数,而不web的资源数,/后为资源总字节数
Keep-Alive: timeout=5,max=99tcp 协议中判断终端的活跃状态,连接时间
Connection: Keep-Alive 连接方式,tcp连接不会关闭,会保持连接
Content-Type: text/html 文档的类型
print_r($_SERVER);
http的请求方式:主要有两种GET、POST,在HTTP中本来没有大小限制,但浏览器会对get的大小会限制
1、get会将请求的内容加在URL中
2、post不会将数据通过URL传输