资讯专栏INFORMATION COLUMN

切图崽的自我修养-[HTTP] Http Proxy浅析

heartFollower / 444人阅读

摘要:前言它是一个中介代理服务器是网络的中间实体。代理位于客户端和服务器之间,扮演中间人的角色。

前言

它是一个中介

Web代理(proxy)服务器是网络的中间实体。 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。HTTP的代理服务器即是Web服务器又是Web客户端

Proxy代理软件

mac常用的proxy软件有Charles

proxy软件只能映射你浏览器的请求的host

P.s : 如果要改动你本机上所有http协议请求的host,请更改本机的Host文件,mac的本机host文件位置在/private/etc/

如何代理

你的pc地址x.x.x.x, 项目的地址跑在本机是 x.x.x.x:80/demo.html, 如果在本地开启了代理服务器, 那么代理服务器地址就是x.x.x.x:8888(如果你用Charles). 你的电脑上浏览器的所有http请求,都会先被转发到代理服务器x.x.x.x:8888,再由代理服务器x.x.x.x:8888转发到目标地址.

你开启proxy代理后,用浏览器访问www.baidu.com, 请求会被先转发到x.x.x.x:8888, 然后 x.x.x.x:8888会将这个请求转发到www.baidu.com,

映射域名

在开发过程中,我们常常需要把本地网站demo的域名改成某个线上的地址来满足某些开发需要(比如活动项目开发的时候,如果要调用微信的jssdk,网站必须是9game.cn的域名),比如在pc端,你想用goldpage.9game.cn:80/demo 这个域名来访问本地的项目localhost:5000/demo,这时候,就需要做一个域名映射,即在本地开启代理服务器,在代理服务器中进行配置goldpage.9game.cn:80 映射成 localhost:5000, 这样,你在浏览器中输入goldpage.9game.cn:80后,请求会先被转发到代理服务器x.x.x.x:8888,然后代理服务器会将这个请求转发到你本机的localhost:5000上

请求调试

移动端没有控制台,请求发出与否,哪些地方出错没有地方进行显示和调试.
现在场景如下:
你有一台手机(ip:y.y.y.y) 一台pc(ip:x.x.x.x) ,你在pc上开发完了一个页面y.y.y.y:80/demo.html,点击上面的按钮, 能向后台z.z.z.z:5000/restful这个地址发送一个ajax post请求. 现在你用手机调试这个页面,你点击了按钮,POST请求完全没反应,不知道是事件兼容性的问题还是网络的问题导致这个ajax请求没有发出去,这时候你需要做代理调试.

首先,在你pc x.x.x.x上开一个proxy代理,监听端口8888

然后,将你的手机的http代理设置为x.x.x.x:8888

这样,你手机发出的所有http请求,会被转发到你pc的代理服务器x.x.x.x:8888上来

经过这样的设置,请求就会从手机->pc(代理)->服务器,不仅不会对页面交互有任何影响,而且你可以通过查看代理服务器的日志来看所有经过代理服务器的ajax请求了! 用这种方式来抓包,效果一级棒

(在这个例子中,你访问x.x.x.x:80/demo.html,并且点击按钮向z.z.z.z:5000/restful 发送请求,这个过程实际上是发送了两个请求,一个向x.x.x.x:80请求demo.html的GET请求,一个向z.z.z.z:5000的restFul接口发送POST请求. 如果代理服务器不做任何设置,默认就是按原地址进行转发. 即 x.x.x.x:80转发到x.x.x.x:80, z.z.z.z.:5000转发到z.z.z.z:5000 (当然你也可以将x.x.x.x:80转发到baidu.com这是可以的,但这样你请求的就是baidu.com/demo.html了))

结语

Http Proxy还有其他很多有意思的技巧可以深入挖掘,有空再继续补充

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80586.html

相关文章

  • 切图崽的自我修养-[HTTP] Http Proxy浅析

    摘要:前言它是一个中介代理服务器是网络的中间实体。代理位于客户端和服务器之间,扮演中间人的角色。 前言 它是一个中介 Web代理(proxy)服务器是网络的中间实体。 代理位于Web客户端和Web服务器之间,扮演中间人的角色。HTTP的代理服务器即是Web服务器又是Web客户端 Proxy代理软件 mac常用的proxy软件有Charles proxy软件只能映射你浏览器的请求的host ...

    RayKr 评论0 收藏0
  • 切图崽的自我修养-[ES6] 迭代器Iterator浅析

    摘要:任何数据结构只要部署接口,就可以完成遍历操作即依次处理该数据结构的成员。的遍历某个数据结构过程是这样的比如对进行遍历创建一个指针对象,指向当前数组的起始位置。 Iterator 这真是毅种循环 Iterator不是array,也不是set,不是map, 它不是一个实体,而是一种访问机制,是一个用来访问某个对象的接口规范,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Ite...

    neu 评论0 收藏0
  • 切图崽的自我修养-[ES6] 迭代器Iterator浅析

    摘要:任何数据结构只要部署接口,就可以完成遍历操作即依次处理该数据结构的成员。的遍历某个数据结构过程是这样的比如对进行遍历创建一个指针对象,指向当前数组的起始位置。 Iterator 这真是毅种循环 Iterator不是array,也不是set,不是map, 它不是一个实体,而是一种访问机制,是一个用来访问某个对象的接口规范,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Ite...

    springDevBird 评论0 收藏0
  • 切图崽的自我修养-[ES6] 迭代器Iterator浅析

    摘要:任何数据结构只要部署接口,就可以完成遍历操作即依次处理该数据结构的成员。的遍历某个数据结构过程是这样的比如对进行遍历创建一个指针对象,指向当前数组的起始位置。 Iterator 这真是毅种循环 Iterator不是array,也不是set,不是map, 它不是一个实体,而是一种访问机制,是一个用来访问某个对象的接口规范,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Ite...

    happyfish 评论0 收藏0
  • 切图崽的自我修养-[ES6] 生成器Generator浅析

    摘要:搞这么神秘其实就是个迭代器的核心实际上就是一个,通过关键字能够把函数体拆成完全可控执行片段,在函数体外部通过来对这些执行片段进行遍历这和遍历这些数据结构是一个道理只不过用来遍历函数片段,而用来遍历元素对生成器执行操作,进行生成器的入口开始执 Generator 搞这么神秘 其实就是个迭代器 Generator的核心实际上就是一个Iterator,通过yield关键字能够把函数体拆成完全...

    Dogee 评论0 收藏0

发表评论

0条评论

heartFollower

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<