HTTP PHP学习

2 篇文章 0 订阅
1、DNS负载均衡下访问定点IP资源:
           在访问服务器的时候我们可能会遇到这样的情况,我们输入一个域名,DNS服务器可能会做负载均衡,映射到具有不同IP地址的服务器上,这样我们每次访问相同域名的网站,可能会到具有不同IP地址的服务器上面去浏览资源,而我们却毫不知情。现在我们要和该域名下某个固定IP地址的服务器进行交互,该怎么做?
          在HTTP协议的中的header有一个字段Host是用来指定访问的主机名以及端口。
          例:百度有俩个IP地址61.135.169.125和202.108.22.5,我们只想访问第一个IP地址。
          命令如下:curl -H 'Host:www.baidu.com' http://61.135.169.125
          PHP: curl_setopt(&curl, CURLOPT_HTTPHEADER, 'www.baidu.com');
     
2、图片防盗链:
      设置图片防盗链:
           HTTP协议的header中有一个字段Referer可以用来告诉服务器是从哪个页面链接到该网址的,因此常用来做流量统计。当一般的服务器也会用此做来图片的防盗链判断,即如果访问该资源的网址和方式不是我们想要网址,那么可以禁止其访问。在nginx的配置文件nginx.conf中的location字段中可以设置访问图片资源的referer。一般字段如下:
       location ~ *\.(gif|jpg|jpeg|png|bmp|swf)$
       {
            valid_referers none blocked *.360.cn
            if ($invalid_referer)
            {
                return 403;
            }
      }
第一行:对以gif,jpg,jpeg,png,bmp,swf这些作为后缀名的资源进行访问设置
第二行:valid_referers表示有效的网址来源;
        none表示没有referer字段(如直接输入资源进行访问);
        block表示根据防火墙伪装过的referer字段,*.360.cn表示服务器列表;
第三行:if语句表示当访问的referer字段不存在时做的操作,如果跳转到该资源的连接在valid_referers中则invalid_referer的值为0,否则为1,然后返回403。
整个配置语句解释:当对服务器上的目录下的gif,jpg,png等图片类型进行访问时,如果是从none,block,*.360.cn这些地方跳转过来的,则让其进行访问。否则返回403状态。
如果要防止图片盗链的直接访问,把none去掉,并重启服务器。
      绕过图片防盗链:
          知道了图片防盗链是怎么设置的,我们就可以很轻松的绕过防盗链了。
          例:伪造从安全搜索跳转到凤凰网页面。
          命令如下:curl -e www.so.com www.ifeng.com
           PHP:curl_setopt(&curl, CURLOPT_REFERER, 'www.so.com');
         

3、设置代理服务器:
正向代理:即在客户端和服务器之间增加一个代理服务器,需要在客户端设置代理服务器。从原始服务器取得内容,用户通过向该代理服务器发送请求,由代理服务器转交请求并将内容返还给客户端。
反向代理:即在服务端做一个代理,客户访问服务端的时候并不知情,而且客户并不需要做特别的设置,客户端向反向代理发送请求,接着反向代理判断出向何处转交请求,并将获得的内容转发给客户端。
区别:简单的说,正向代理就是通过代理由内网访问外网,而反向代理是由外网访问服务器内网。
原文链接

代理设置:
nginx中设置正向代理,最简单的设置,没有其它任何缓存大小,等待时间的处理:
nginx配置文件中增加字段
server
{
          resolver 8.8.8.8;
listen 1942;
location /
{
proxy_pass http://$http_host$request_uri;
}
}
resolver表示代理接受来自请求的时候需要向哪个DNS服务器做解析,这里的8.8.8.8是google的DNS服务器。
listen 1942表示监听的端口,$http_host即访问主机的域名,$request_uri即访问的资源。
使用代理:
curl中可以使用-x来指定HTTP代理,或者--socks5来指定socks5的代理。
例:使用我们上面的代理访问凤凰网页。
命令如下:curl -x 127.0.0.1:1942 www.ifeng.com
PHP: curl_setopt(&curl, CURLOPT_PROXY, '127.0.0.1:1942');
          curl_setopt(&curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5 );//设置代理类型,默认HTTP
          curl_setopt(&curl, CURLOPT_PROXYUSERPW, 'admin:admin ');//设置用户名和密码,默认都为空
          

4、并发抓取:
           原文链接
           总的来说有俩个比较常用的模型:
         1、 rolling-curl
          2、 ParallelCurl
           里面都有具体的文档和例子。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值