我的php编的东西用IE打开是该也无法显示,是不是因为如何打开服务器端口没设置好的原因?

下次自动登录
现在的位置:
新版wordpress安装“创建配置文件”无反应解决办法
对于初学者来说,wordpress的安装是必须要学习的一门基础,不可能跳过安装而直接去使用。在wordpress的安装过程中难免不会出现各种小问题,虽然按照网上的教程按部就班去安装,但是依旧不可能避免一些特别的问题,小编就曾经碰到过了一个比较头疼的问题:wordpress在IIS6.0环境安装无法创建配置文件,点击“创建配置文件”没有反应的问题,这种问题只在wordpress3.6以后的wordpress3.7、wordpress3.8等新版中出现,而wordpress3.6以前版本却是正常的,针对新版wordpress安装“创建配置文件”无反应的情况有什么解决办法呢?
经过小编的不断测试终于发现了问题的所在,首先先说一下出现这种问题的环境
测试环境:Win2003+IIS6.0+MySql+PHP+Zend+phpMyAdmin;
测试浏览器:IE6、谷歌浏览器;
wordpress版本:wordpress3.8。
测试步骤:
1.在IIS里配置好wordpress本地服务器,设置端口为8080;
2.IE6里打开本地网址:localhost:8080,出现下图页面;
3.点击“创建配置文件”按钮,问题出现。
可以发现点击后没有反映,并不能进入wordpress的配置页面,有朋友此时可能会选择手动配置wordpress,手动设置wp-config.php文件,但是你会发现,一旦打开本地网址页面地址:localhost:8080,IE6里没有任何显示,而在谷歌浏览器里会显示“此页面包含重定向循环”。此时,对于一个新手而言,是无比的苦恼,自动配置无法进行,手动配置出错,具体问题出现在什么地方呢?
现在,我们回归到测试步骤里的第三步,注意点击“创建配置文件”按钮后地址栏里的变化,如下图,可以看出,地址栏里的地址为“http://localhost:8080/index.php/wp-admin/setup-config.php”。
此时,我们删掉地址栏里的"index.php"将地址更改为“http://localhost:8080/wp-admin/setup-config.php”进入,可以发现我们已经进入了wordpress的配置文件创建页面,如下图,点击“现在就开始”就进入了数据库配置页面,接下来按部就班设置直至完成即可,问题也迎刃而解了。
但是,有个问题也出现了,网页在IE6里面显示是错乱的,IE7以上版本是正常的,也就是说新版wordpress对IE6的兼容不好,或者说已经不兼容,使用IE7以上版本或者谷歌浏览器显示正常。同时,使用IE6登录phpMyAdmin会出现下图错误,但是如果使用IE8、谷歌浏览器进行登录却不会出现这种情况,具体原因小编目前也无从解释,也正在研究,如有知道的朋友也希望不吝赐教。
【上篇】【下篇】
您可能还会对这些文章感兴趣!
日志:142篇
评论:2624条
分类:15个
标签:114个
运行:1472天
最后更新:日当前位置:&&
本页文章导读:
&&&&?windows下使用IIS配置的PHP无法上传文件的解决方法&&&&&&
延续《Windows Server 2003中iis配置php》一文 服务器上使用Apache2+PHP正常运行,换成IIS+PHP,先后出现了php.ini的环境变量无法读取,php中验证码无法显示的问题,如今又有人反应无法上传图片的问.........&&&&?服务器iis假死的原因及解决方法&&&&&&
打开IIS 你就会看到应用程序池,默认只有一个应用程序池,查看应用程序池的属性,会发现他的回收时间,默认多达,1740分钟,就是说,需要在1740分钟后才回收此应用程序池,如果在这个.........&&&&?解决关于IIS gzip不能正常启用的问题&&&&&&
1、gzip的下载安装 一键开启gzip独立主机/VPS 一键开启IIS的GZIP方法 http://www./article/30151.htm2、安装成功后,基本上是可以的, 一般情况下就是 gzip缓存目录c:\windows\IIS Temporary CompressedFiles 目录,.........
[1]windows下使用IIS配置的PHP无法上传文件的解决方法
&&&&来源:&互联网& 发布时间:&
延续《Windows Server 2003中iis配置php》一文 服务器上使用Apache2+PHP正常运行,换成IIS+PHP,先后出现了php.ini的环境变量无法读取,php中验证码无法显示的问题,如今又有人反应无法上传图片的问题。从IIS替换Apache2的过程仅仅是开启IIS,关闭Apache2,其它的没什么变化,但是却发生了如此多的差异,看样子IIS支持PHP还是有很多要进行修改的。 分析: 根据上面的描述,我怀疑问题出在IIS的权限配置上,IUSR_MACHINE的帐户对upload没有写入的权限,于是进行权限修改,IIS下的权限,NTFS下的权限都进行修改,但是终究都没用,查找网络上的资料也没有相应的,对上传页面进行测试,流程为: swf文件调用save.php上传文件----&swf文件对上传的文件进行重命名---&名字返回给save.php---&显示出最后的名字。现在的问题一直停留在swf对文件重命名的这里,一直没有到显示出最后的名字,并且swf文件不参与上传过程,那就只能在save.php文件中进行问题查找了,在该文件中进行测试,最后显示的名字所使用的变量为fileName,于是插入下面的语句进行测试: echo "fileName=2008*****.gif"; 这句话的作用就是使得fileName有值,save.php能正常显示,先把原来的语句一句一句的进行屏蔽测试,都正常的返回了,但是当测试到: if (mailto:!@move_uploaded_file($f[%22tmp_name"], $dest_dir.'/'.$fileName)) header("HTTP/1.0 404 Not Found"); 这句话的时候问题出现了,不能上传,查找上下文,一直没发现tmp_name的变量,不过看意思是先把文件上传到一个临时文件,再挪动到目的位置,那这个tmp位置在哪里呢?是不是这个位置不可写, 才导致了无法上传文件? 查找网上资料,发现php.ini下面有2个地方关于上传的配置: file_uploads = On 这里设置是否允许HTTP上传,默认应该为ON的 ;upload_tmp_dir= 这里设置上传文件存放的临时位置 网上对于这2个地方的相关资料有: I try to set up file uploading under IIS 7 and PHP 5. First problem was to set 2 variables in php.ini file_uploads = On //这里是说php.ini文件这个地方设置成On upload_tmp_dir = "C:\Inetpub\wwwroot\uploads" //这个路径就是自己设置的上传文件临时存储路径 For some reasons such directory name works, but "upload_tmp" won't work. The second problem was to set correct user rigths for upload folders where you try to save your file. I set my upload folder rights for the "WORKGROUP/users" for the full access. You may experiment by yourselves if you not need execute access, for example. 我的php.ini中upload_tmp_dir是被注释的,没有启用,更没有设置,可是为什么Apache2却可以正常上传呢?难道问题真的出在这里? 解决: 新建一个文件夹做临时上传目录,按照上面的英文说明修改php.ini中相应的那2项,把临时上传目录upload_tmp_dir设置成刚才建立的文件夹,把该文件夹的权限赋予“IUSR_计算机名”用户可写,重新启动IIS,上传试试,问题真的就这样解决了。 最终的分析答案: 上面的内容写于09年,但是现在2010年7月我新增一台服务器,又出现了这个问题,同时再次按照上面的解决方法实施,在操作的过程中大概是由于哪里出了错,竟然没有成功,不得不抽出点时间来研究具体原因,找到了最终产生这个问题的原因如下。 无法上传文件,不代表所有文件都无法上传,因为我的一个网站,flash调用fwrite()传头像之类的成功了,但是调用@move_uploaded_file($f["tmp_name"], $dest_dir.'/'.$fileName)这样的函数传照片的时候仍旧无法上传。 经过我的分析,原因是由于fwrite()是传的二进制文件,而move_uploaded_file()传的是文本文件,而windows操作系统是区分这2种文件的 [参考php手册fwrite()函数的说明],这也就是说这2种不同的文件在php环境下上传时所存储的临时上传目录是不同的,由于在配置IIS环境下的PHP的时候,设置的临时目录为E:\tmp,设置该目录的iusr用户可写,二进制文件即可上传,所以我怀疑该目录就是二进制文件上传临时文件的存储位置,那么move_uploaded_file()传的文本文件的临时文件存储位置在哪里呢?其实就是在上面的那段英文里面,upload_tmp_dir设置的路径就是了,但是我的几台服务器中,每台服务器的这个设置的值都是被注释掉的“no value”,为什么有的服务器可以上传,而有的服务器不可以上传呢?这也就回到了以前我提出的问题,为什么Apache2可以上传而iis不可以上传呢? 这次我再次分析upload.php文件,分析其中造成该故障的代码具体内容如下:
代码如下: // 检查是否有文件上传 if (! $_FILES['upload'.$num]['name'] == ""){ if ($_FILES['upload'.$num]['size'] & $max_size) { 1、 echo "文件上传路径:".$location.$_FILES['upload'.$num]['name']; 2、echo "文件临时文件名:".$_FILES['upload'.$num]['tmp_name']; 3、 move_uploaded_file($_FILES['upload'.$num]['tmp_name'],$location.$_FILES['upload'.$num]['name']) or $event = "Failure"; } else { $event = "File too large!"; }
其中正常代码中第2句是不存在的,为了测试方便我加上来的,它的主要目的就是测试我的php.ini没有设置upload_dir_tmp的值的时候,上传的文件临时保存在哪里的,经过这个测试发现原来在不配置php.ini的upload_dir_tmp的值的时候,默认的存储位置是在C:\windows\temp目录,并且临时文件是以.tmp为后缀存储的,该文件马上就会被删除,所以你想通过操作系统的文件修改搜索功能是无法找到的,也就无法找到upload_dir_tmp的默认路径是哪里。既然找到了upload_dir_tmp的默认路径了,那么修改c:\windows\temp的访问权限,赋予IUSR_用户可写,重启动IIS Admin服务,上传文件,终于成功了。这就是为什么我的多台服务器upload_dir_tmp的值都为空的时候有的可传,有的不可传的原因。现在已经修改了IIS使用环境变量方式精简配置php的那篇文章了,因为当时没有注意这个位置的权限设置,造成了如今的问题,不过最终解决也是好的。
[2]服务器iis假死的原因及解决方法
&&&&来源:&互联网& 发布时间:&
打开IIS 你就会看到应用程序池,默认只有一个应用程序池,查看应用程序池的属性,会发现他的回收时间,默认多达,1740分钟,就是说,需要在1740分钟后才回收此应用程序池,如果在这个时间内,达到请求的最高限制,那么就会出现ASP假死的情况,这个就是大型网站出现假死的情况,反而,小型网站确不会出现这样的情况,因为他请求少,流量少,还没达到限制数量。当然要看你的服务器上网站数目而定。 单个网站解决方法: 把应用程序池回收时间缩短到300-600分钟,其间回收过程中,需要占用一点CPU资源,没办法,为了稳定性,再把回收时间设为凌晨5点。 多网站解决方法: 假设一台服务器目前拉了70个网站左右,那么可以新建六个应用程序池,把每个池回收时间缩小到300分钟,然后再分配每个池10个网站左右(这个分配是要求你的网站访问量所定)如果某个网站,访问量大,就单独给他一个程序池,但是这样做的后果就是需要大内存,一个池现在占用120M内存左右,反正内存大,没关系。那么多网站如何分配应用程序池,打开IIS--查看你要分配的网站属性,,查看主目录--在下面 你就会看到应用程序池了,分配一个就行了。 大家在使用iis6时..如果装了动网论坛.肯定有出现过iis6假死现像..就是asp网页打开慢..但是iis却是正常的..静态网页打开速度一样..这时候..我一直是重启的方法..查了官方的资料结果没有...据官方资料说..win2003很快就要打这个补丁了..是iis6对access驱动支持不理像..也算是一个bug吧..由于服务器虚拟主机多..而且大多支持asp..如果一旦假死就无法运行..在多方面的资料查找下..找到了一个比较简单的方法..具体测试是通过了..iis6自带数据应用程序池..现在就利用他来解决假死.. 首先把bbs设一个单独的目录..然后点击应用程序池..新建应用程序池.输入应用程序池id.. 然后把bbs的虚拟目录下面的.就用程序池..选择刚才新建的应用程序池... 然后再回到刚才设好的应用程序池...点击..属性...把回收工作进程数(分钟)及回收工作进程数还有在下列时间回收时间进程勾上..然后在下列时间回收程序池里左边添加..选择一个时间..一般来说..网站到凌晨3点的时候.基本人都很少了..这时回收一下bbs的进程数..就可以解决了iis假死的现像.. 当然还可以配置其他信息..比如说iis6的用户名.. 我们可以打开计处机管理..然后打开计算机用户管理..添加一个用户..设置好后..在应用程序池里面..标识..把添加的用户放上去..用用户来测试回收的进程..当然还有..其他配置..其实很简单..只要你好好看一下..就能明白意思... 对于部分人来说..这种方法可能不太方便..所以可以用一个工具来回收应用程序池..这样方便而且快捷..个人用户当然不需要这种工具..公司用户的话..服务器压力挺大..所以都用工具来解决一些问题.所括.iis的备分.及虚拟主机ip的统一修改及端口访问的ip记录..用批处理是一个很简单又方便的方法.所以.把一台服务器做的安全..并不是哪么容易的事..特别是iis..经常去官方网站搜索资料是一个好习惯..还有就是经常性的访问日志..及注册表的用户还有加载运行的程序.及服务也是一个好方法..所以.要学会如何遇到问题如何处理问题!!!!推荐一个软件 IIS守护程序 下载地址 http://www./softs/12793.html解压后双击IISHelper.exe运行,然后点右下角的开始执行即可!常来网也是用的这个,比较实用的小软件。发现问题,就重启iis,保证网站的正常运行。
[3]解决关于IIS gzip不能正常启用的问题
&&&&来源:&互联网& 发布时间:&
1、gzip的下载安装 一键开启gzip独立主机/VPS 一键开启IIS的GZIP方法 http://www./article/30151.htm2、安装成功后,基本上是可以的, 一般情况下就是 gzip缓存目录c:\windows\IIS Temporary CompressedFiles 目录,我们建议放到d盘,并给everyone全部权限即可。重新启动iis即可。IIS启用Gzip压缩造成OpenFlashChart不能正常显示问题及解决方法 在.NET中使用OpenFlashChart控件显示图表时,谁会想到图表显示正常与否竟然和服务器IIS是否启用了Gzip压缩有关呢? 两个站点用着同一套程序,一个站点OpenFlashChart图表能正常显示,另一个站点却显示为“ioerror Error #2032”,而且这个问题只出现在IE6浏览器中,火狐和IE7中都能正常显示,是什么原因造成的呢? 百度和Google一番,才查到原因是服务器上采用了Gzip压缩优化网站和no-cache同时出现造成的,解决方法是在返回的页面里增加HTTP头,示例代码如下:
代码如下: Response.Clear(); //Response.CacheControl = "no-cache"; //用这句代替上面一句 Response.AppendHeader("Cache-Control", "no-cache, no-store, must-revalidate, max-age=-1"); Response.Write(chart.ToString()); //输出openflashchat流 Response.End();
以下是详细介绍,适合手工配置gzip的朋友一. HTTP压缩概述 HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或 CSS文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点点服务器的负担。Gzip是比较常见的 一种HTTP压缩算法。 本文介绍的HTTP压缩方式,采用的是Windows系统设置的方式,优点是效率较高。 二. HTTP压缩工作原理 Web服务器处理HTTP压缩的工作原理如下: Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩; 如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名; 如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件; 如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件; 如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件; 如果请求文件是ASPX等动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。 小编在网上找过很多的资料,gzip对搜索引擎Seo不会有影响,并且Baidu也明确表示可以解析Gzip数据。 我们用站长站的工具来检测一下Gzip以后的效果: 不过注意 GZIP一般只对 Html 之类的文本有效果,而对已经压缩过了的图片如 gif,jpg 等是没有效果的。 下载我们来一步一步教大家如何打开IIS的Gzip 1. 打开Internet信息服务(IIS)管理器,右击“网站”-》“属性”,选择“服务”。在“HTTP压缩”框中选中“压缩应用程序文件”和“压缩静态文件”,按需要设置“临时目录”和“临时目录的最大限制”; 2. 在Internet信息服务(IIS)管理器,右击“Web服务扩展”-》“增加一个新的Web服务扩展。。.”,在“新建Web服务扩展”框中输入扩展名“HTTP Compression”,添加“要求的文件”为c:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系统目录根据您的安装可能有所不同,选中“设置扩展状态为允许”; 3. 使用文本编辑器打开c:\Windows\System32\inetsrv\MetaBase.xml(建议先备份), 在打开之前请注意: 1. 在编辑MetaBase.xml前需要停止IIS,可以使用 微软键+R运行:net stop iisadmin 2. 修改完成后重启VPS 找到Location =“/LM/W3SVC/Filters/Compression/gzip用于设置gzip压缩, 找到Location =”/LM/W3SVC/Filters/Compression/deflate“用于设置deflate压缩。 上面两个节点紧挨着。并且设置的属性相同。 如果需要压缩动态文件,则将HcDoDynamicCompression设置为”TRUE“, 并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx; 如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为”TRUE“, 并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xml、css等; HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数值在0-10, 默认为0。 HcDynamicCompressionLevel属性说明:HcDynamicCompressionLevel Metabase Property HcOnDemandCompLevel 属性说明:HcOnDemandCompLevel Metabase Property 说明: 这两个属性值一般推荐设置为9, 具有最佳性价比。 关键的配置来了:导致GZIP无法生效就是下面的配置网上没有提到。 HcNoCompressionForHttp10="TRUE" HcNoCompressionForProxies="TRUE" 改为 HcNoCompressionForHttp10="FALSE" HcNoCompressionForProxies="FALSE"
最新技术文章:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)2012-,E-mail:www_169it_(请将#改为@)php的cookie无法写入客户浏览器里面是什么原因?
我在本地的virtual box中的centos测试了程序没问题 但是上传到服务器上就没法写入cookie了 而且我也尝试了 在服务器上别的页面cookie就可以正常写入 &不知道怎么回事 我想知道一般什么原因可以引起php的cookie无法写入
ps 浏览器用的是 Chrome firefox &肯定不是浏览器的问题
是不是&域&的问题? 好像只能写入&当前域&和&根域&.
服务器的时间
你可以把代码发来看看,大家分析分析。
代码很简单 就是 setcookie() 服务器的时间应该没问题 &我新建了个.php 测试了下可以写入 但就是登录页的cookie不能 &没办法我现在只能用ajax发送到前端用JS 写入cookie了 因为是虚拟主机 先只能这样了 谢谢上面两位大哥了
session.auto_start透过httpwatch了解浏览器显示页面的工作过程&&categories:&&tags:&&author:原创文档,转载请将原文url地址标明本文将研究当你输入一个网址的时候,后台到底发生了一件件什么样的事。当用户在一个浏览器中输入一个网站地址,然后点击回车,我们就会看到相关网站,操作可谓简单,但是若是无法打开一个网站时,如何能确定问题在哪里,这就需要我们了解在用户下达命令后,系统都发生了什么,这样为我们排除指明了方向。1. 在浏览器里输入网址当用户输入了地址后,然后敲击回车键,一个网站的页面也就显示出来了。里面其实主要发生了几个过程。(1)浏览器查找域名及ip地址的对应关系(2)浏览器根据ip地址。连接ip地址对应的服务器进行数据获取工作之后就是根据数据进行相关数据的处理工作(3)根据获取到的数据进行解析,然后获取里面包括的其他资源(4)下载相关资源(5)解释相关资源(6)根据这些资源等,显示页面下面将重点介绍相关过程。2. 浏览器查找域名的IP地址浏览器在接受到用户的请求后,首先要做的事情是找到用户输入的域名对应的ip地址是多少?然后去连接这个ip地址相关的服务程序,然后取得相关页面,最后进行显示。取得ip地址,首先浏览器会先检查自己的缓冲中是否存在域名及ip地址的对应关系,若是没有进行下面检查hosts文件中是否有域名与ip地址的对应关系。我们经常在网站的开发中,临时指定hosts文件中的配置将某个域名指向开发的机器来调试应用程序的。利用就是这个原理。然后检查操作系统的dns缓存,若是有也可以返回了,若是没有进行下面的通过操作系统的dns客户端服务程序,访问用户配置的dns服务器进行域名解析。用户的域名服务器会在自己的内存等中检查域名,若是域名存在则放回,若是不存在则根据设置,去检查上级域名服务器。检查域名服务器主要过程如下:①检查国际顶级域名服务器(.), 然后这个dns服务器会通知这个dns服务器区到 .cn域名的dns服务器检查域名,②然后域名服务器会联系这个.cn域名服务器去解析域名,最后.cn域名服务器会告诉dns服务器区访问这个dns服务器区解析这个域名。③最后用户dns服务器获取了相关的域名的ip的地址解析。DNS对于像wikipedia.org这样的大型网站,整个域名实际对应是比较复杂的。有几种方法可以被采用,这里仅仅需要了解就好。1. 循环 DNS 是DNS查找时返回多个IP时的解决方案。2. 负载平衡器 是以一个特定IP地址进行侦听并将网络请求转发到集群服务器上的硬件设备。 一些大型的站点一般都会使用这种昂贵的高性能负载平衡器。3. 地理 DNS 根据用户所处的地理位置,通过把域名映射到多个不同的IP地址提高可扩展性。这样不同 的服务器不能够更新同步状态,但映射静态内容的话非常好。4. Anycast是一个IP地址映射多个物理主机的路由技术。 美中不足,Anycast与TCP协议适应的不是很好,所以很少应用在那些方案中。大多数DNS服务器使用Anycast来获得高效低延迟的DNS查找。3. 浏览器给web服务器发送一个HTTP请求因为现在通常的网站都是动态页面,打开后在浏览器缓存中很快甚至马上就会过期,毫无疑问他们不能从中读取。所以,浏览器将把一下请求发送到域名对应ip的所在服务器,服务器经过各种各样的计算后,将结果返回。用户在请求页面过程中,主要分为,发送请求(request)信息给服务器,然后服务器接收到请求后,进行解析等各项工作。最后服务器会返回相应(response)给客户端,客户端进行相应的处理工作。如上图是httpwatch记录是一个http的通信过程。其中较小的红色区域,是记录的浏览器访问网络的地址Request:较大的红色是用户的请求数据区域,上面是用户请求的头部信息,下面是body信息Response:蓝色的区域是相应的数据流,上面是header信息(头部),下面是body信息下面是浏览器发送的数据的部分片段GET / HTTP/1.1
// http的方法Accept: */*
// 客户端可以接受的类型Referer: /
// 发起请求页面的地址Accept-Language: zh-cn
// 客户端的语言环境Accept-Encoding: gzip, deflate
//客户端接受的编码类型User-Agent: Mozilla/4.0 ( MSIE 6.0; Windows NT 5.1; SV1; BTRS124342; .NET CLR 2.0.50727; .NET CLR 3.0.; .NET CLR 3.5.30729)
// 浏览器类型Host:
// 访问的主机Connection: Keep-Alive
// http的连接属性请求中也包含浏览器存储的该域名的cookies。可能你已经知道,在不同页面请求当中,cookies是与跟 踪一个网站状态相匹配的键值。这样cookies会存储登录用户名,服务器分配的密码和一些用户设置等。Cookies会以文本文档形式存储在客户机里, 每次请求时发送给服务器。用来看原始HTTP请求及其相应的工具很多。作者比较喜欢使用fiddler(使用比较麻烦,好像需要配置代理服务器等,但是功能非常强大,比如模拟http的header等,目前阶段我们暂不需要这个工具出马),当然也有像FireBug这样其他的工具。这些软件在网站优化时会帮 上很大忙,httpwatch是一个较好的工具除了获取请求,还有一种是发送请求,它常在提交表单用到。发送请求通过URL传递其参数(e.g.: )。 发送请求在请求正文头之后发送其参数。像“/”中的斜杠是至关重要的。这种情况下,浏览器能安全的添加斜杠。而像“http: ///folderOrFile”这样的地址,因为浏览器不清楚folderOrFile到底是文件夹还是文件,所以不能自动添加 斜杠。这时,浏览器就不加斜杠直接访问地址,服务器会响应一个重定向,结果造成一次不必要的握手。4. 永久重定向响应当服务器给浏览器响应一个301永久重定向响应,这样浏览器就会访问被从指向的域名,例如访问:/时,从定向到(301)到“/” 而非“/”。为什么服务器一定要重定向而不是直接发会用户想看的网页内容呢?这个问题有好多有意思的答案。其中一个原因跟搜索引擎排名有 关。你看,如果一个页面有两个地址,就像/ 和/,搜索引擎会认为它们是两个网站,结果造成每一个的搜索链接都减少从而降低排名。而搜索引擎知道301 永久重定向是 什么意思,这样就会把访问带www的和不带www的地址归到同一个网站排名下。还有一个是用不同的地址会造成缓存友好性变差。当一个页面有好几个名字时,它可能会在缓存里出现好几次。5. 服务器“处理”请求服务器接收到获取请求,然后处理并返回一个响应。这表面上看起来是一个顺向的任务,但其实这中间发生了很多有意思的东西- 就像作者博客这样简单的网站!1. Web 服务器软件 web服务器软件(像nginx和阿帕奇)接收到HTTP请求,然后确定执行什么请求处理来处理它。请求处理就是一个能够读懂请求 并且能生成HTML来进行响应的程序(像ASP.NET,PHP,RUBY…)。举 个最简单的例子,需求处理可以以映射网站地址结构的文件层次存储。像/folder1/page1.aspx这个地 址会映射/httpdocs/folder1/page1.aspx这个文件。web服务器软件可以设置成为地址人工的对应请求处理,这样 page1.aspx的发布地址就可以是/folder1/page1。2. 请求处理 请求处理阅读请求及它的参数和cookies。它会读取也可能更新一些数据,并讲数据存储在服务器上。然后,需求处理会生成一 个HTML响应。所有动态网站都面临一个有意思的难点 -如何存储数据。小网站一半都会有一个SQL数据库来存储数据,存储大量数据和/或访问量大的网站不得不找一些办法把数据库分配到多台机器上。解决方案 有:sharding (基于主键值讲数据表分散到多个数据库中),复制,利用弱语义一致性的简化数据库。6. 服务器发回一个HTML响应以上步骤都完成后,服务器将发送返回数据给浏览器了,如下图。返回给浏览器的数据包括:返回码,状态信息,头部数据,body数据等等,下面是头部数据的截取。HTTP/1.1 200 OK // 表明是http1.1协议, 状态码200, 状态信息OKServer: nginx/1.0.14 // server的信息,表明是nginx的一个版本Date: Sun, 11 Nov :12 GMT
// 页面的服务器生成时间Content-Type: text/ charset=UTF-8
// 内容类型,及编码格式Transfer-Encoding: chunkedConnection: keep-alive
// 连接属性Vary: Accept-EncodingX-Powered-By: PHP/5.3.10X-Pingback: /xmlrpc.phpContent-Encoding: gzip上图是服务器返回页面数据的内容,用户可以通过content标签卡进行查看返回的部分内容如下:&!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”&&html xmlns=”http://www.w3.org/1999/xhtml” dir=”ltr” lang=”zh-CN”&&head profile=”http://gmpg.org/xfn/11″&&meta http-equiv=”Content-Type” content=”text/ charset=UTF-8″ /&&title& 快乐成长&/title&&link rel=”stylesheet” href=”/wp-content/themes/ecomag/style.css” type=”text/css” media=”screen” /&&link rel=”alternate” type=”application/rss+xml” title=”快乐成长 RSS Feed” href=”/feed” /&&link rel=”alternate” type=”application/atom+xml” title=”快乐成长 Atom Feed” href=”/feed/atom” /&&link rel=”pingback” href=”/xmlrpc.php” /&&link rel=”shortcut icon” href=”/wp-content/themes/ecomag/images/favicon.ico” /&&link rel=”stylesheet” href=”/wp-content/themes/ecomag/style.css” type=”text/css” /&&link rel=”EditURI” type=”application/rsd+xml” title=”RSD” href=”/xmlrpc.php?rsd” /&&link rel=”wlwmanifest” type=”application/wlwmanifest+xml” href=”/wp-includes/wlwmanifest.xml” /&&link rel=’index’ title=’快乐成长’ href=’’ /&&meta name=”generator” content=”WordPress 3.1.3″ /&&style type=”text/css”&.recentcomments a{display:inline !padding:0 !margin:0 !}&/style&&!–[if lt IE 7]&&!– script defer type=”text/javascript” src=”/wp-content/themes/ecomag/js/pngfix.js”&&/script –&&style type=”text/css”&*html .excrept_in {height: 1%;}&/style&&![endif]–&&/head&&body&&div id=”header”&&div id=”topnav”&&div id=”topnav_left”&&ul id=”pagenav”&&li class=”page_item page-item-2″&&a href=”/sample-page” title=”关于”&关于&/a&&/li&&li class=”page_item page-item-181″&&a href=”/hadoop_intr” title=”hadoop导读”&hadoop导读&/a&&/li&&/ul&&/div&&div id=”topnav_right”&关于压缩,头信息说明了是否缓存这个页面,如果缓存的话如何去做,有什么cookies要去设置(前面这个响应里没有这点)和隐私信息等等。请注意报头中把Content-type设置为“text/html”。报 头让浏览器将该响应内容以HTML形式呈现,而不是以文件形式下载它。浏览器会根据报头信息决定如何解释该响应,不过同时也会考虑像URL扩展内容等其他 因素。7. 浏览器开始显示HTML在浏览器没有完整接受全部HTML文档时,它就已经开始显示这个页面了:有时页面设置得当的话,浏览器会边下载边显示页面的,但若是设置不当,就要下载全部资源后在显示了。8
浏览器发送获取嵌入在HTML中的对象在浏览器显示HTML时,它会注意到需要获取其他地址内容的标签。这时,浏览器会发送一个获取请求来重新获得这些文件。下面是几个我们访问时需要重获取的几个URL:1. 图片/wp-content/themes/ecomag/images/but.jpg/wp-content/themes/ecomag/images/rss.png…2. CSS 式样表/wp-content/themes/ecomag/style.css…3. JavaScript 文件 这些地址都要经历一个和HTML读取类似的过程。所以浏览器会在DNS中查找这些域名,发送请求,重定向等等…但不像动态页面那样,静态文件会允许浏览器对其进行缓存。有的文件可能会不需要与服务器通讯,而从缓存中直接读取。服务器的响应中包含了静态文件保 存的期限 信息,所以浏览器知道要把它们缓存多长时间。还有,每个响应都可能包含像版本号一样工作的ETag头(被请求变量的实体值),如果浏览器观察到文件的版本 ETag信息已经存在,就马上停止这个文件的传输。近期文章
分类目录选择分类目录书路&&(10)儿童画&&(121)&&&儿童作品&&(82)&&&儿童画教程&&(24)原创&&(127)&&&0基础编程&&(23)&&&android&&(9)&&&hadoop&&(18)&&&java原创&&(2)&&&livewriter&&(11)&&&nginx&&(52)资料&&(1,055)&&&android资料&&(83)&&&java资料&&(74)&&&linux资料&&(36)&&&mq&&(24)&&&mysql资料&&(34)&&&nginx资料&&(17)&&&svn&&(9)&&&wordpress&&(48)&&&搜索资料&&(45) 文章归档 选择月份 2017年十二月 &(7) 2017年十一月 &(3) 2017年九月 &(3) 2017年八月 &(1) 2017年七月 &(15) 2017年六月 &(23) 2017年五月 &(35) 2017年四月 &(38) 2017年三月 &(20) 2017年二月 &(5) 2017年一月 &(9) 2016年十二月 &(8) 2016年十一月 &(1) 2016年十月 &(10) 2016年九月 &(5) 2016年八月 &(8) 2016年七月 &(6) 2016年六月 &(9) 2016年五月 &(14) 2016年四月 &(6) 2016年三月 &(21) 2016年二月 &(11) 2016年一月 &(15) 2015年十二月 &(18) 2015年十一月 &(14) 2015年十月 &(6) 2015年九月 &(6) 2015年八月 &(7) 2015年七月 &(11) 2015年六月 &(19) 2015年五月 &(27) 2015年四月 &(19) 2015年三月 &(35) 2015年二月 &(38) 2015年一月 &(20) 2014年十二月 &(8) 2014年十一月 &(8) 2014年十月 &(3) 2014年九月 &(3) 2014年八月 &(3) 2014年七月 &(4) 2014年六月 &(3) 2014年五月 &(7) 2014年四月 &(9) 2014年三月 &(8) 2014年二月 &(8) 2014年一月 &(11) 2013年十二月 &(11) 2013年十一月 &(9) 2013年十月 &(40) 2013年九月 &(79) 2013年八月 &(50) 2013年七月 &(68) 2013年六月 &(50) 2013年五月 &(59) 2013年四月 &(65) 2013年三月 &(59) 2013年二月 &(20) 2013年一月 &(59) 2012年十二月 &(52) 2012年十一月 &(91) 2012年十月 &(23)

我要回帖

更多关于 如何打开服务器端口 的文章

 

随机推荐