我可以通过https://example.com拨打http://api.example.com吗?

时间:2016-05-21 17:22:14

标签: php ajax django ssl

我使用django作为后端API和ajax用于进行api call.my主站点运行在https上但api在http上运行。我无法将ssl cert的api调用加载到ngnix上。

是否可以从https到http?

进行ajax调用

任何线索都会受到赞赏吗?

事先提前!! !!

2 个答案:

答案 0 :(得分:1)

HTTP和HTTPS之间的唯一区别是SSL安全部分,如果您的服务器能够处理HTTPS请求,它们将像任何其他HTTP请求一样发送到API,它只是实际的数据通信从客户端套接字到受影响的服务器套接字,一旦收到数据,它将再次以纯文本(或其原始格式)返回。

答案 1 :(得分:0)

您的浏览器将停止此操作和/或为您的HTTPS连接提供不安全的警告和挂锁符号。

HTTPS表示该网站是安全的,这为访问者提供了一定的保证 - 即该网站是针对给定的域(身份验证),未被截获和更改(完整性)以及其他任何人都无法收听进出服务器的消息(机密性)。

当您添加不安全的资源(如api调用)时,这些保证不再存在,因此浏览器会发出“不安全”警告,通常带有黄色警告挂锁(而不是绿色)和/或弹出窗口。

浏览器用于区分非活动内容(例如图像) - 这些内容被认为风险较低,因此被允许,以及活动内容(例如JavaScript) - 这些内容具有潜在的危险性,因此不允许,但不认为它们再做一次。即使他们做了Ajax XHR调用肯定属于后一类。

最佳选择是通过Nginx通过您的主站点域proxy pass发送请求(例如,使用Nginx配置从Nginx转发到https://example.com/api到您的api)。