我们的想法是将传入的请求转发http://abc.example.com/...并重写为http://example.com/abc/...
这很容易做到301/302重定向:
# rewrite via 301 Moved Permanently
server {
listen 80;
server_name abc.example.com;
rewrite ^ $scheme://example.com/abc$request_uri permanent;
}
Run Code Online (Sandbox Code Playgroud)
关键是要做到这一点URL变化透明的客户端时abc.example.com,并example.com点于同一Nginx的实例.
换句话说,Nginx可以在请求example.com/abc/...时提供内容,abc.example.com/...而无需另外客户往返吗?
起点配置
使用301完成任务的Nginx配置:
# abc.example.com
server {
listen 80;
server_name abc.example.com;
rewrite ^ $scheme://example.com/abc$request_uri permanent;
}
# example.com
server {
listen 80;
server_name example.com;
location / {
# ...
}
}
Run Code Online (Sandbox Code Playgroud) 有谁知道批量http请求的标准方法?含义 - 在一次往返中发送多个http原子请求?
出于性能原因,我们在REST API实现中需要这样的机制.这种机制可以显着减少客户端为消耗API而需要执行的往返次数.
提前致谢,
吉文
我很难理解我们RoundTripper在Go中需要什么.
https://golang.org/pkg/net/http/#RoundTripper
解释TransportGo中的默认值:
var DefaultTransport RoundTripper = &Transport{
Proxy: ProxyFromEnvironment,
Dial: (&net.Dialer{
Timeout: 30 * time.Second,
KeepAlive: 30 * time.Second,
}).Dial,
TLSHandshakeTimeout: 10 * time.Second,
}
Run Code Online (Sandbox Code Playgroud)
但是RoundTripper和之间的区别是什么:
transport := &http.Transport{
Proxy: http.ProxyFromEnvironment,
TLSHandshakeTimeout: timeout,
Dial: dialfunc,
DisableKeepAlives: true,
}
Run Code Online (Sandbox Code Playgroud)
我的问题:RoundTripper与常规不同Transport?
我试图从Web应用程序中引发HTTP响应的人为延迟(这是一种用于执行盲SQL注入的技术).如果从浏览器发送以下HTTP请求,则Web服务器的响应在3秒后返回(由sleep(3)引起):
http://192.168.2.15/sqli-labs/Less-9/?id=1'+and+if+(ascii(substr(database(),+1,+1))=115,sleep(3),null)+--+
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用请求库在Python 2.7中执行相同的操作.我的代码是:
import requests
payload = {"id": "1' and if (ascii(substr(database(), 1, 1))=115,sleep(3),null) --+"}
r = requests.get('http://192.168.2.15/sqli-labs/Less-9', params=payload)
roundtrip = r.elapsed.total_seconds()
print roundtrip
Run Code Online (Sandbox Code Playgroud)
我预计往返时间为3秒,但我得到的值为0.001371,0.001616,0.002228等.我没有正确使用经过的属性吗?
C++语言定义对于将一个char转换为bool然后再返回char有什么作用?
char original = 255;
bool next = original;
char final = next;
Run Code Online (Sandbox Code Playgroud)
此外,大多数编译器在这种情况下做了什么,超出了语言保证的范围?
我有一个小办公室网络,我遇到了巨大的互联网链接延迟.我们有一个简单的网络拓扑:配置为运行ubuntu服务器10.10的路由器的计算机,2个网卡(一个连接到互联网链接,另一个连接到办公网络)和一个连接20台计算机的交换机.我在路由器上收集了一个巨大的tcpdump日志,我想用所有 TCP流的RTT时间绘制直方图,以试图找出这个延迟问题的最佳解决方案.那么,有人可以告诉我如何使用wireshark或其他工具吗?
使用Crockford的JSLINT,在调用JSLINT()解析一些JavaScript源代码后,它提供了对解析树的访问JSLINT.tree
能够分析树,根据分析对其进行结构更改然后从修改后的树生成新的JavaScript将非常强大.
是否有一个基于JSLINT构建的开源项目,它提供了从解析树到JavaScript的转换?
(这是否可能,即JSLINT是否保留了完整的解析信息,以便对所有重要内容进行往返?)
UML Round-Trip Engineering工具具有无缝同步功能?
在理性套房声称这样做.但它的绘制(比罗斯时代更糟糕)是如此昂贵和笨重,以至于它不是大多数部门所能达到的.
令人惊奇的是,免费的Bouml似乎做得非常出色.使用起来感觉太笨重了.它具有很多功能,免费(!),非常快,并且可以很好地逆向工程复杂的C++.它还有一些很好的图表支持,包括一个非常好的序列图.虽然界面是未经抛光的(并且不断在最右边的显示器上打开对话框),但它确实具有非常强大的产品的开端.令人遗憾的是界面非常简陋,需要花费很多精力.也许是因为作者把大部分时间都花在了实际的功能上.有没有人在整个产品生命周期中使用Bouml的经验?
这就留下了昂贵的MagicDraw,功能强大且价格合理的企业架构师,以及外观精美的视觉范例.其中,只有Visual Paradigm对我的项目的C++标题进行逆向工程的问题.
MagicDraw有一种古怪的感觉.虽然复杂C++项目的往返工程是否是无缝的,但仍然有待观察,它本身在逆向工程方面做得很好.他们希望多语言版本超过1800美元,因此它的价格与Rational工具类似.
Enterprise Architect虽然远比大多数便宜,但它似乎可能是最完整的功能.它完美地解析和生成C++.甚至评论和格式都保持不变.有很棒的培训材料.但它不能处理Objective-C,因此对iOS和Mac OS X混合代码项目不太有用.自动序列图生成听起来很棒,但听起来它只适用于Windows .NET项目.
Visual Architect(多语言双向800美元)是我遇到过的最好看的软件建模工具.虽然它可能会有一些往返问题,但很高兴用手工制作模型.它甚至比漂亮的玫瑰,在某些方面.它具有直观的方式,可以在光标处显示您需要的工具.然而正如我所提到的,目前还没有达到让模型与源同步的目标.而且它通常甚至没有通知导入没有完全起作用,或者已经创建了重复的类(具有相同的名称).它还使用对话框使消息参数的输入变得困难,而其他参数则允许在图上正确地更改参数.(免费的Bouml擅长于此,MagicDraw和其他人也是如此.
有没有人发现了一种多语言(Java,C++,C#,ObjC++,Python,Ruby,SQL)往返工程工具,可以处理真实世界的项目,处理自定义(如消息上的自定义参数),但是没有被下一个源代码导入删除?
并且在生成时完全保留所有格式和注释.关闭不够好.如果工具搞乱了源代码格式化,那么开发人员不会希望该工具在其源代码上运行.
我想问一下,与标准HTTP GET相比,当使用Web套接字(消息)实现时,是否应该期望一些不同的往返时间(向服务器发送一些信息并收到响应).我假设Web套接字已经连接并且DNS已解析.
据我所知,如果GET在底层协议中包含多个往返,那我就不一定了,我不确定.否则我会期待相同的结果.
这里有几个问题.
想象一下,我有客户端A将要向服务器发送以下消息:"START START VVEMENT FORWARD".
服务器不会立即收到此消息,因为延迟会导致延迟.
问题1:ping(或更好:往返时间)是客户端向服务器发送消息并接收响应所需的时间.如果您可以忽略服务器注意到它已收到消息并开始发送响应(这应该非常短)所需的时间,这是否意味着以下内容?
因此,当客户端A发送该消息时,服务器将在客户端发送消息后的往返时间/ 2毫秒内接收该消息.这引出了我的下一个问题.
问题2:如果客户端首先发送包,然后在实际执行客户端命令(在这种情况下:向前移动)之前等待往返时间/ 2毫秒以补偿延迟/延迟?
现在,服务器将向所有附近的玩家发送以下消息:"客户端A现在正在向前移动".然后,这些客户端将确保客户端a的角色开始移动,这将引导我进入下一个问题.
问题3:客户端是否应该收到其他客户端已移动的消息,并考虑到此消息是由服务器往返时间/ 2毫秒发送的?那么用于运动计算时间戳的当前时间应该减少往返时间/ 2?
在我看来,所有这些方法都会确保客户端之间的同步得到改善,因为延迟会被考虑在内.这是正确的做事方式吗?大多数其他好的多人游戏都这样做吗?您想提供的任何评论,建议,替代方案或随机但相关的呼喊?提前致谢.
roundtrip ×10
http ×2
performance ×2
ajax ×1
batch-file ×1
boolean ×1
c++ ×1
casting ×1
elapsed ×1
go ×1
histogram ×1
httpresponse ×1
javascript ×1
jslint ×1
latency ×1
multiplayer ×1
nginx ×1
parsing ×1
python-2.7 ×1
rest ×1
rewrite ×1
subdomain ×1
tcpdump ×1
uml ×1
websocket ×1
wireshark ×1