给出一个网址,假设:“ example.com”
我怎么知道Java是http://www.example.com还是https://www.example.com还是javascript中的客户端。
我想对我的域中的任意域执行此操作。我正在创建一个网站扫描工具,我想查找用户输入的网站协议(以防用户输入不带https的example.com)
答案 0 :(得分:3)
您可以检查location.protocol
WITH cte AS (
SELECT
e.id,
e.code,
(SELECT combovalue FROM dbo.combovalues WHERE id = e.department) department
FROM dbo.employee e
)
SELECT *
FROM cte
WHERE department = 'Admin';
答案 1 :(得分:2)
这里有很多误解。
字符串“ example.com”不是URL。它没有协议。
域就是这样。域。它不是URL。它不是一个网站。 DNS只能解析一系列字符...
您不能假设有任何与域相关联的网站。
“ www。”惯例是多余的,过时的...(IMO)...丑陋。大多数使用“ www.example.com”的地方还将在“ example.com”上拥有一台服务器,并且一个服务器将适当地重定向到另一个服务器。
您不能始终假定服务器位于标准端口(80或443)上。甚至有可能https服务器使用端口80或http服务器使用端口443。(疯狂……但有可能)
那么您如何确定给定域名是否具有关联的网站,该网站的URL是什么以及它是“ http:”还是“ https:”?
尝试和错误。没有其他办法。
尝试在标准端口和可能的通用备用端口上发送HTTP请求;例如端口8080。如果您收到有效的响应,则表明您已识别HTTP服务器。
使用HTTPS请求尝试相同的操作。
如果域名不是以“ www”开头。尝试为此添加前缀。
但是请您放弃上述任何一项工作的可能性。
答案 2 :(得分:0)
在javascript中,您可以执行以下操作:
console.log(window.location.protocol)
,这将记录http或https
答案 3 :(得分:0)
您可以验证document.location.protocol
以查看它是“ http:”还是“ https:”,或查阅此页面Parsing a URL on java
import java.net.*;
import java.io.*;
public class ParseURL {
public static void main(String[] args) throws Exception {
URL aURL = new URL("http://example.com:80/docs/books/tutorial"
+ "/index.html?name=networking#DOWNLOADING");
System.out.println("protocol = " + aURL.getProtocol());
}
}