HTTPS включен или выключен для данного номера порта. Когда сервер настроен на прослушивание определенного порта, вы настраиваете его на прослушивание HTTPS или HTTP (как это зависит от сервера к серверу). Если сервер настроен на прослушивание HTTPS-соединений, тогда, когда что-то подключается, он немедленно запускает процесс шифрования, и соединение не будет установлено, если другая сторона также не ожидает шифрования.
Когда браузер подключается к серверу, он решает, произносить ли HTTP или HTTPS, на основе схемы URL-адреса, введенного пользователем. Если он набрал https: //, то он установит зашифрованное соединение с сервером на сервере. указанный порт (или 443, если не указан). Если сервер не ожидает зашифрованного соединения с этим портом, соединение не устанавливается.
Если пользователь вводит http: //, то браузер говорит незашифрованный http на указанном порту (или 80, если не указан). Опять же, если сервер ожидает, что трафик будет зашифрован, то соединение не будет установлено.
Только если обе стороны будут соответствовать ожиданиям, соединение будет успешным.
Теоретически возможно использовать заголовок HTTP Upgrade , чтобы запустить простое незашифрованное соединение HTTP, а затем включить шифрование, аналогично STARTTLS в других протоколах. Насколько я знаю, такая функциональность используется редко, если вообще используется. Почти всегда шифрование включается с самого начала с использованием определенного номера порта зашифрованного трафика.
Я не уверен, чего Вы пытаетесь достигнуть точно, возможно, можно включить некоторые детали, на что команда и аргументы будут похожи, и какой результат Вы ожидаете от своего приложения.
я думаю, что это не то, в чем Вы нуждаетесь, но это могло бы помочь другим читателям: свойства получения Пружинных опор из командной строки с помощью двойного дефиса (например, java -jar app.jar --my.property="Property Value"
Взглянули на эту документацию для получения дополнительной информации: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-command-line-args
Рассмотрим следующий класс:
public class ExternalBeanReferneceFactoryBean
extends AbstractFactoryBean
implements BeanNameAware {
private static Map<String, Object> instances = new HashMap<String, Object>();
private String beanName;
/**
* @param instance the instance to set
*/
public static void setInstance(String beanName, Object instance) {
instances.put(beanName, instance);
}
@Override
protected Object createInstance()
throws Exception {
return instances.get(beanName);
}
@Override
public Class<?> getObjectType() {
return instances.get(beanName).getClass();
}
@Override
public void setBeanName(String name) {
this.beanName = name;
}
}
вместе с:
/**
* Starts the job server.
* @param args command line arguments
*/
public static void main(String[] args) {
// parse the command line
CommandLineParser parser = new GnuParser();
CommandLine cmdLine = null;
try {
cmdLine = parser.parse(OPTIONS, args);
} catch(ParseException pe) {
System.err.println("Error parsing command line: "+pe.getMessage());
new HelpFormatter().printHelp("command", OPTIONS);
return;
}
// create root beanFactory
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
// register bean definition for the command line
ExternalBeanReferneceFactoryBean.setInstance("commandLine", cmdLine);
beanFactory.registerBeanDefinition("commandLine", BeanDefinitionBuilder
.rootBeanDefinition(ExternalBeanReferneceFactoryBean.class)
.getBeanDefinition());
// create application context
GenericApplicationContext rootAppContext = new GenericApplicationContext(beanFactory);
rootAppContext.refresh();
// create the application context
ApplicationContext appContext = new ClassPathXmlApplicationContext(new String[] {
"/commandlineapp/applicationContext.xml"
}, rootAppContext);
System.out.println(appContext.getBean("commandLine"));
}
Посмотрите на мою библиотеку Spring-Cli - в http://github.com/sazzer/spring-cli - как один из способов этого сделать. Он дает вам основной класс, который автоматически загружает контексты пружины и имеет возможность использовать Commons-CLI для автоматически разбора аргументов командной строки и впрыскивая их в вашу боб.