Neo4j 特定 HTTP 请求用户代理字符串
下面是来自 Apache 服务器 /var/log/apache2/access.log 的示例日志,其中包含 4 条请求,由以下来源发起:
192.168.2.38 - - [26/Mar/2018:19:16:52 -0400] "GET / HTTP/1.1" 200 3477 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 192.168.2.38 - - [26/Mar/2018:19:17:23 -0400] "GET / HTTP/1.1" 404 3477 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" 192.168.2.40 - - [26/Mar/2018:19:21:11 -0400] "GET /test.json HTTP/1.1" 200 989 "-" "curl/7.55.1" 192.168.2.40 - - [26/Mar/2018:19:26:37 -0400] "GET /test.json HTTP/1.1" 200 989 "-" "APOC Procedures for Neo4j" 192.168.2.40 - - [26/Mar/2018:19:46:01 -0400] "GET /test.csv HTTP/1.1" 200 502 "-" "NeoLoadCSV_Java/1.8.0_151"
从上面可以看到,apoc.load.json 发送的用户代理为 APOC Procedures for Neo4j,而 LOAD CSV 发送的用户代理为 NeoLoadCSV_Java/1.8.0_151。另外,对于任何启用 Bolt 的应用程序,例如 Neo4j Browser 和 cypher-shell,用户代理将保持相同,因为实际工作是在服务器端完成的。
因此,如果您的网络防火墙只允许典型已知的用户代理/浏览器标识的 HTTP(s) 请求流量,并拒绝所有其他流量,可能会出现这种情况:通过普通浏览器的请求能够返回数据,而使用 APOC 或 LOAD CSV 时却没有返回任何数据。
此页面有帮助吗?