当前位置:  技术问答>linux和unix

如何确定php网页的返回长度?

    来源: 互联网  发布时间:2015-06-24

    本文导语:  我在写一个浏览器,目前遇到一个困难,就是php服务器的http报头,与纯文本html的包头有区别,以下是php服务器对于我get方法的返回 HTTP/1.0 200 OK Date: Thu, 01 Apr 2004 14:47:10 GMT Server: Apache/1.3.29 (Unix) Resin/1.2.8 PHP/4....

我在写一个浏览器,目前遇到一个困难,就是php服务器的http报头,与纯文本html的包头有区别,以下是php服务器对于我get方法的返回
HTTP/1.0 200 OK
Date: Thu, 01 Apr 2004 14:47:10 GMT
Server: Apache/1.3.29 (Unix) Resin/1.2.8 PHP/4.3.0
X-Powered-By: PHP/4.3.0
Content-Type: text/html
X-Cache: MISS from kachemsa.insa-rouen.fr
Proxy-Connection: close

.....
其中缺少了Content-Length 这一属性,我无法判断它的内容的长度,怎么办啊?

|
头串的取法是一开始直到两个换行“rnrn",如:
HTTP/1.0 200 OKrn
Date: Thu, 01 Apr 2004 14:47:10 GMTrn
Server: Apache/1.3.29 (Unix) Resin/1.2.8 PHP/4.3.0rn
X-Powered-By: PHP/4.3.0rn
Content-Type: text/htmlrn
rn
rn
......


不会没有Content-Length吧?!
这个可是http一定需要的属性吧

|
你用mget去发个get包 看一下返回的包文

我感觉是服务器不能给出length

即使是apache 有时候有些html或者其他类型也无法返回length

这是因为服务器本身才解析你请求url时候的不到那个文件的length 

自然就不会返回length

|
有时间你看一下abyss服务器的code就明白了

|
写浏览器应该没必要一定要知道内容长度啊,举个例子.
我写一个CGI,里面是

for(;;) printf("hehe
rn");

你说这个的长度APACHE能知道吗? 
所以你的浏览器只能不断的读,读到EOF为止啦.
当然,资源分配还是有限度的,用动态分配试试

|
没有长度?!这个倒是真的没有遇到过!
但是我觉得这个与文件的大小是没有关系的,这个长度应该是WEB服务器解释后返回的HTML的长度!

楼上的说直到EOF?!好像没有这个东西吧,这可不是文件啊!是通过TCP来处理的,那又怎么知道已经接收完一个页面了呢?

|
没看到上面的语句吗?
他会无限的送出HEHE 2 字的,无限的话,怎么计算长度? 一直打开这个页面的
话,我的系统内存都用的差不多了

SOCKET在UNIX下也是文件句柄,说错了,不是EOF,是一直读
但这个已经是TCP层的问题了,和你HTTP头上返回长度没什么关系的拉

|
不会阻塞吧,read读不到东西就说明是读完了,你就可以不用读了

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下,怎么确定动态库的绝对位置(动态库里面确定)?
  • 如何在Shell中确定一个驱动是否已在Linux/Unix上安装?
  • 确定是否安装IIS服务的方法
  • 如何确定点击的是BACKSPACE键
  • 如何实现子进程根据父进程的信号来确定是否终止子进程???
  • 无法确定主机IP地址时产生。
  • 如何用socket一次传输多个文件,如何确定文件一个文件结束
  • 怎么确定LINUX GATEWAY用的是什么防火墙????怎么找到配置文件???
  • touch: cannot touch '/var/lock/subsys/sshd' : 只读文件系统[确定]
  • GtkClist 按一次确定键,为什么调用了两次按键回调函数?
  • 如何确定redhat9的某个软件包是否安装?
  • 如何分析网页以确定见面中含有恶意代码?
  • 怎么确定设备文件?
  • 怎样确定文件路径???
  • 如何确定数据已经从内核缓冲区写入磁盘了?
  • 如何确定信号的来源?即如何知道接收到的信号来自于哪一个进程号?
  • 有个模式对话框,如何象VC那样向其发送一个消息,就可模拟用户单击了“确定”按钮
  • daemon进程运行一段不确定时间后自动退出,何解?
  • socket编程,我如何确定与对方的连接是否正常?
  • 先确定进程是否存在,如在,杀死。怎样实现,谢谢(100分)?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3