使用HTTP GET方法检索PHP脚本

时间:2018-07-05 14:28:45

标签: c# php http

(我是初学者。这是为了更好地理解PHP。)

在尝试使用HTTP时,我尝试从服务器上GET {}}一个PHP文件,但没有得到任何帮助。 HTTP标头Content-Length或任何内容都无法在响应中读取。

string url = "http://php.net/sites.php";
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
request.AutomaticDecompression = DecompressionMethods.GZip;
request.Method = "GET";
Stream stream = request.GetRequestStream(); // "ProtocolViolationException" is thrown here
StreamWriter writer = new StreamWriter(stream);
writer.WriteLine("test 3");

因此,使用上述C#代码以及我的本地IIS,我无法获取任何php文件吗?我只能获取html,js,css,图像和some_other,对吗?我还发现,如果我想执行PHP脚本,则需要将“ GET”更改为“ POST”,然后才能获取PHP输出。

我想了解的内容

  • 对于普通的Web服务器,我无法检索PHP代码吗?
  • Webbrowsers在检索php输出时会自动执行POST请求吗?
  • 为什么会这样?

仅供参考:(在这里不重要),我稍后必须编写C#应用程序,该应用程序将与WebServer通信以检索一些数据并执行Webbrowsers无法执行的操作。

1 个答案:

答案 0 :(得分:3)

  

因此,使用上面的C#代码以及我的本地IIS,我无法获取任何php文件吗?

如果您statically host的php文件可以从服务器上获取,但这确实是不寻常的。

  

我只能获取html,js,css,图像和some_other,对吗?

您可以获取服务器发送的任何内容,在这种情况下,IIS会接收到您的GET请求并决定如何处理它。

  

对于普通的Web服务器,我无法检索PHP代码吗?

如果您设置自己的服务器以将php文件作为静态内容托管,则可以看到自己的php文件。除非他人的服务器配置类似,否则无法查看他人的PHP源文件。

  

Webbrowsers在检索php输出时会自动执行POST请求吗?

浏览器确实可以获取和发布。在地址栏中输入内容时,浏览器为GET;在submit表单中,浏览器为POST。

  

为什么会这样?

PHP是一种服务器端语言,暴露代码会带来巨大的安全风险。这也是必须在服务器上执行的代码,因此客户端(浏览器)看不到服务器上的代码,只是出于潜在的调试目的。