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 浏览器和 cypher-shell),用户代理将相同,因为实际工作是在服务器本身上完成的。
因此,如果您的网络防火墙只允许典型的已知用户代理/浏览器标识符的 HTTP(s) 请求流量,并拒绝所有其他流量,您可能会遇到这种情况:通过典型浏览器报告数据,但使用 APOC 或 LOAD CSV 时没有数据返回。
此页面是否有帮助?