上下求索

移动网关对HTTP信令头域格式的要求

上一篇 / 下一篇  2010-02-24 16:22:28

前面的测试针对移动网关HTTP头识别处理已经出现了几次比较麻烦的问题,这里简单做下总结。

通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可 选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域 值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。
  典型的请求消息:

  GET http://download.microtool.de:80/somedata.exe
  Host: download.microtool.de
  Accept:*/*
  Pragma: no-cache
  Cache-Control: no-cache
  Referer: http://download.microtool.de/
  User-Agent:Mozilla/4.04[en](Win95;I;Nav)
  Range:bytes=554554-

请求部分一般问题不大,只是在而测试的时候要注意是否支持GET和POST两种方式的兼容。

  典型的响应消息:

  HTTP/1.0200OK
  Date:Mon,31Dec200104:25:57GMT
  Server:Apache/1.3.14(Unix)
  Content-type:text/html
  Last-modified:Tue,17Apr200106:46:28GMT
  Etag:”a030f020ac7c01:1e9f”
  Content-length:39725426
  Content-range:bytes554554-40279979/40279980

现在发现的几个问题都是在响应部分,必须注意有两点:

1.content-length和content-type必须要带,不然很多地区的运营商网关会无法识别,导致手机终端可以正常发包到我们的服务端,但我们的服务端响应无法正常返回到终端的情况;

2.除了消息头外,我们有些服务的响应是不带消息体的,这种情况测试中也发现有问题,最好的解决办法就是带了一段附带的消息体(即使是无效的)。

 

再简单介绍下content-type和content-length的概念:

Content-Type实体头用于向接收方指示实体的介质类型,指定HEAD方法送到接收方的实体介质类型,或GET方法发送的请求介质类型。此参数是与请求中Accept字段对应的。

Content-Length表示实际传送的字节数。

由于一些地区的运营商网关对HTTP头的要求和限制比较严格,不制定类型会出现HTTP无法解析的情况,导致了我们服务异常的出现,由于各个开发人员的编程习惯不同,也没有对头域格式进行统一,上面的问题还是比较普遍的存在,各位同学以后测试的时候注意检查判断。


TAG: http 移动网关

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-24  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 126829
  • 日志数: 65
  • 建立时间: 2009-06-24
  • 更新时间: 2013-11-01

RSS订阅

Open Toolbar