(我是初学者。这是为了更好地理解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输出。
我想了解的内容
:仅供参考:(在这里不重要),我稍后必须编写C#应用程序,该应用程序将与WebServer通信以检索一些数据并执行Webbrowsers无法执行的操作。
答案 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是一种服务器端语言,暴露代码会带来巨大的安全风险。这也是必须在服务器上执行的代码,因此客户端(浏览器)看不到服务器上的代码,只是出于潜在的调试目的。