Я ничего никогда не настраивал на виртуальном хосте, но вот некоторая информация об общем HTTPS:
HTTPS использует комбинацию HTTP и SSL (см. статью Википедии здесь: http://en.wikipedia.org/wiki/HTTP_Secure). HTTPS не является действительно своим собственным протоколом серовато-синий, а скорее нормальный HTTP, работающий на туннеле SSL.
HTTPS использует CA (Сертификат Authories) и PKI (Инфраструктура открытых ключей), чтобы гарантировать, что пользователи могут 'доверять' сайту. Необходимо создать сертификат открытых ключей для веб-сервера, и это должно быть подписано доверяемым CA (таким как VeriSign). Для получения доверяемого сертификата, это может стоить Вам ежегодной платы для поддержания.
Если Вы не пройдете доверяемый CA, то пользователи получат предупреждение, когда они попытаются соединиться с Вашим сайтом. Это часто может времена приводить пользователей отклоняться от Вашего сайта, потому что они могли бы рассматривать его как угрозу безопасности.
Кроме того, имейте в виду, что, в то время как HTTP использует порт 80 по умолчанию, HTTPS использует 443 поэтому, если у Вас есть какое-либо перенаправление портов/, порт, блокирующий Вас, должен будет гарантировать, что это открыто, чтобы Вы соединились. Для использования HTTPS, необходимо будет также удостовериться, чтобы Вы ввели его в URL, когда Вы перейдете на сайт, иначе он, вероятно, примет значение по умолчанию к использованию HTTP.
Править: Вот хорошее введение в то, как HTTPS работает: http://securityworkshop.blogspot.com/2009/01/how-httpsssl-works-part-1-basics.html
curl
кодирование URL поддержек внутренне с --data-urlencode
:
$ curl -G -v "http://localhost:30001/data" --data-urlencode "msg=hello world" --data-urlencode "msg2=hello world2"
-G
также необходимо для добавления данных к URL.
Заголовки трассировки
> GET /data?msg=hello%20world&msg2=hello%20world2 HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu)
> Host: localhost
> Accept: */*
curl -G "$( echo "$URL" | sed 's/ /%20/g' )"
Где $URL
URL, на котором Вы хотите сделать переводы.
Существует также больше чем один тип перевода (кодирующего) Вас, может иметь в URL, таким образом, можно хотеть сделать:
curl -G "$(perl -MURI::Escape -e 'print uri_escape shift, , q{^A-Za-z0-9\-._~/:}' -- "$URL")"
вместо этого.
echo "$URL" | sed 's/ /%20/'
не сделает правильной вещи, если будет %
символы в URL. Кроме того, пробелы обычно кодируются как +
(и +
как %2b
). Я рекомендую решение для Perl, которое надежно.
– Gilles 'SO- stop being evil'
15.08.2013, 01:02
sed 's/ /%20/g'
если у Вас есть больше чем одно пространство для перевода...
– sebthebert
06.02.2015, 16:45
msg = '='
? – Aurélien Ooms 15.10.2015, 12:14"msg1=Hello&msg2=World"
? Это закодирует&
между параметрами, которые означали бы неправильную вещь отправить к серверу – Ganesh Satpute 28.07.2016, 16:08--data-urlencode
параметры, один для каждой пары "ключ-значение". – Martijn Pieters 09.08.2016, 16:04