您的位置:首页 > 理论基础 > 计算机网络

http请求详解 防盗链技术

2013-12-07 12:35 323 查看
http协议:超文本传输协议

1、建立在tcp/ip协议基础上.

2、我们的web开发数据的传输都是依赖于http协议。

http协议的 http请求(request)

基本结构

请求行

消息头

消息体(实体内容)(若有数据需要处理)

在服务器端我们可以通过$_SERVER来获取我们需要的信息

HTTP_ACCEPT=image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*

HTTP_ACCEPT_LANGUAGE=zh-CN

HTTP_CACHE_CONTROL=no-cache

HTTP_USER_AGENT=Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)

HTTP_ACCEPT_ENCODING=gzip, deflate
HTTP_HOST=192.168.1.100

HTTP_CONNECTION=Keep-Alive

PATH=C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;D:\杞欢\Windows7Master;C:\myenv\mysql5\bin;d:\Windows7Master;C:;D:\Windows7Master;

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.2.17 (Win32) PHP/5.3.5

SERVER_NAME=192.168.1.100

SERVER_ADDR=192.168.1.100

SERVER_PORT=80
REMOTE_ADDR=192.168.1.100      指的是访问页面的IP
DOCUMENT_ROOT=C:/myenv/apache/htdocs   apach的主目录


SERVER_ADMIN=2890241141@qq.com

SCRIPT_FILENAME=C:/myenv/apache/htdocs/RemoteSystemsTempFiles/mywork_http.php

REMOTE_PORT=1940

GATEWAY_INTERFACE=CGI/1.1

SERVER_PROTOCOL=HTTP/1.1

REQUEST_METHOD=GET

QUERY_STRING=
REQUEST_URI=/RemoteSystemsTempFiles/mywork_http.php   请求的资源名

SCRIPT_NAME=/RemoteSystemsTempFiles/mywork_http.php

PHP_SELF=/RemoteSystemsTempFiles/mywork_http.php

REQUEST_TIME=1386167388

http 请求有两种主要的方式

get    /    post

get和post的区别有哪些

都是向服务器发数据

1、安全性       get请求的数据会显示在地址栏上。

                         post请求的数据,放在http协议的消息体中。

2、从可以提交数据的大小来看,我们可以认为:

     2.1   http协议本身并没有显示数据的大小。

     2.2 浏览器在对get和post请求做显示,get 请求数据  2K+35   post没有显示。

     2.3 get请求方便整理到收藏夹。

HTTP请求头信息:

GET /RemoteSystemsTempFiles/testb.php HTTP/1.1  
(发送请求时get请求,资源目录是: /RemoteSystemsTempFiles/testb.php  用的HTTP协议时1.1版本)

Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*  (可以接收的资源类型)

Accept-Language: zh-CN     (编码格式)

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)

Accept-Encoding: gzip, deflate   (压缩格式)

Host: localhost   (主机名)

Connection: Keep-Alive

HTTP响应头信息:

HTTP/1.1 200 OK      200表示客户端请求成功

Date: Sat, 07 Dec 2013 03:02:14 GMT       

Server: Apache/2.2.17 (Win32) PHP/5.3.5      

X-Powered-By: PHP/5.3.5

Content-Length: 47   给浏览器回送的数据有47个字节

Keep-Alive: timeout=5, max=100

Connection: Keep-Alive

Cache-Control: private  【缓存】

Content-Type: text/html  文档类型

<a href='testa.php?$filename=1234'>点击查询</a>

HTTP响应状态码:

202:成功接收亲戚,并处理完整个过程

302:为完成请求,客户端需要在做进一步的细化请求,(资源已经挪动了地址)

304:资源没有修改,不用重新获取(页面在本地有缓存文件,并且资源与服务器的资源相同(比如图片的时间,大小)则就在浏览器缓存中取。)

404:客户端请求有错误

500:服务器端出现错误

302 ,304码运用

当a页面中写下如下代码:

header("Loacation:http://www.sohu.com"); 此时返回给浏览器的响应头会有302码。

header可以往http响应头里写入内容

Loation可以指定访问该页面时,跳转到一个新页面。

值得注意的是:跳转是发生在客户端浏览器上,而不是发生在apache服务器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: