相关疑难解决方法(0)

HTTP标头区分大小写吗?

在博客文章中,我使用以下PHP来设置响应的内容类型:

header('content-type: application/json; charset=utf-8');
Run Code Online (Sandbox Code Playgroud)

我刚刚对该帖子发表评论说content-type需要大写,Content-type.它是否正确?它似乎适用于所有小写的我,我假设HTTP标题不区分大小写.或者它只是工作,因为浏览器很好?

http http-headers

642
推荐指数
7
解决办法
18万
查看次数

即使事情在内部起作用,为什么我仍会从AWS API Gateway收到禁止消息?

我为没有身份验证的公共端点设置了AWS API网关。它连接到触发Lambda的WebSocket。

我正在通过https://pypi.org/project/websocket_client/与Python的websocket-clientlib 建立连接。

我注意到连接将在大约10%的时间内失败,并且随着负载的增加而变得更糟。正如我的常规API网关设置所说,我找不到任何让我感到烦恼的地方Your current account level throttling rate is 10000 requests per second with a burst of 5000 requests.。除此之外,每秒只有2-3个请求经常会触发问题。

同时失败响应会像 {u'message': u'Forbidden', u'connectionId': u'Z2Jp-dR5vHcCJkg=', u'requestId': u'Z2JqAEJRvHcFzvg='}

我进入了CloudWatch日志洞察,并搜索了连接ID和请求ID。API网关的日志组将找不到任何一个ID的结果。但是,在我的Lambda上进行搜索(在websocket connect上触发)时,将带有该连接ID的日志。日志显示一切正常运行。lambda只是运行一个将触发的MySQL查询。

尽管lambda可以按预期工作,但为什么我会得到禁止的响应?

获取消息时存在的问题:禁止从AWS API网关回复,似乎可以解决某些私有端点是否始终返回禁止的问题。我的用例没有任何内容。

更新

我认为这可能与locust.io或python有关,而我正在每秒使用python进行连接。我在我的机器上安装了https://www.npmjs.com/package/wscat,并反复尽可能快地连接和关闭。我没有收到Forbidden消息。由于我不确定我的连接方式在某些时候会随机向您吐出一条Forbidden消息,因此这更加令人困惑。

class SocketClient(object):
    def __init__(self, host):
        self.host = host
        self.session_id = uuid4().hex

    def connect(self):
        self.ws = websocket.WebSocket()
        self.ws.settimeout(10)
        self.ws.connect(self.host)

        events.quitting += self.on_close

        data = self.attach_session({}) …
Run Code Online (Sandbox Code Playgroud)

python websocket locust aws-lambda aws-api-gateway

14
推荐指数
1
解决办法
564
查看次数