WAP技术作为其核心组成部分,在移动通信领域发挥着举足轻重的作用。本文将深入解析WAP源码,带领读者了解移动互联网的底层架构,揭示其技术魅力。
一、WAP简介
WAP(Wireless Application Protocol)无线应用协议,是一种用于在移动设备**问互联网的开放标准。它允许用户通过手机、掌上电脑等无线终端,浏览互联网上的信息资源。WAP协议主要包含WAP客户端、WAP代理服务器和WAP**三部分。
二、WAP源码解析
1. WAP客户端源码解析
WAP客户端是用户与移动互联网交互的界面,其源码主要涉及以下方面:
(1)界面布局:WAP客户端的界面布局主要采用XML技术实现,通过XHTML、CSS等技术进行样式定义。界面布局应遵循简洁、直观、易操作的原则。
(2)网络通信:WAP客户端通过网络协议与WAP代理服务器进行通信。其主要使用HTTP/HTTPS协议,通过GET、POST等方法请求和响应数据。
(3)数据处理:WAP客户端对从WAP代理服务器获取的数据进行处理,包括数据解析、格式转换、本地存储等。数据处理应保证数据准确、完整,并符合业务需求。
2. WAP代理服务器源码解析
WAP代理服务器是WAP网络中的核心组件,主要负责以下功能:
(1)数据转发:WAP代理服务器接收来自WAP客户端的请求,将其转发到目标服务器,并将响应结果返回给客户端。
(2)内容适配:WAP代理服务器根据客户端设备特性,对目标服务器返回的内容进行适配,确保内容在移动设备上正常显示。
(3)安全防护:WAP代理服务器对WAP网络进行安全防护,防止恶意攻击和数据泄露。
3. WAP**源码解析
WAP**是连接WAP网络和互联网的桥梁,其主要功能如下:
(1)协议转换:WAP**将WAP协议转换为互联网协议(如HTTP/HTTPS),实现WAP网络与互联网的互联互通。
(2)数据加密:WAP**对传输数据进行加密,确保数据传输过程中的安全性。
(3)负载均衡:WAP**实现负载均衡,提高网络性能和稳定性。
三、WAP技术在移动互联网中的应用
1. 移动互联网门户
WAP技术广泛应用于移动互联网门户,为用户提供新闻、娱乐、购物、生活等服务。例如,中国移动的WAP门户“中国移动MM”,为广大用户提供便捷的移动互联网服务。
2. 移动应用开发
WAP技术为移动应用开发提供了强大的支持,使得开发者可以轻松地开发出适用于不同移动设备的WAP应用。例如,移动游戏、移动办公、移动学习等领域的应用,均采用了WAP技术。
3. 物联网应用
WAP技术在物联网领域也发挥着重要作用。通过WAP技术,物联网设备可以实现远程监控、数据采集、远程控制等功能,推动物联网应用的发展。
WAP技术作为移动互联网的核心组成部分,在移动通信领域具有重要地位。本文通过对WAP源码的解析,揭示了移动互联网的底层架构,展示了WAP技术在各个领域的应用。随着移动互联网的不断发展,WAP技术将继续为用户提供优质的服务,推动移动互联网产业的繁荣。
既然要利用已经存在的为HTML浏览器编写的代码,就需要知道请求是从HTML浏览器还是从WML浏览器过来的。同样地,如果想重新引导的HTML浏览器直接到相应的HTML文档上,WML浏览器到WML页面上,以下的PHP代码就可以做到这些。
?
// Because this script sends out HTTP header information,
// the first characters in the file must be the ? PHP tag.
// relative URL to your HTML file
$htmlredirect = "/html/my_htmlpage.html";
// ABSOLUTE URL to your WML file
$wmlredirect = "";
if(strpos(strtoupper($HTTP_ACCEPT),"VND.WAP.WML") 0)
{// Check whether the browser/gateway says it accepts WML.
$br = "WML";
}
else {
$browser=substr(trim($HTTP_USER_AGENT),0,4);
if($browser=="Noki" || // Nokia phones and emulators
$browser=="Eric" || // Ericsson WAP phones and emulators
$browser=="WapI" || // Ericsson WapIDE 2.0
$browser=="MC21" || // Ericsson MC218
$browser=="AUR " || // Ericsson R320
$browser=="R380" || // Ericsson R380
$browser=="UP.B" || // UP.Browser
$browser=="WinW" || // WinWAP browser
$browser=="UPG1" || // UP.SDK 4.0
$browser=="upsi" || // another kind of UP.Browser ??
$browser=="QWAP" || // unknown QWAPPER browser
$browser=="Jigs" || // unknown JigSaw browser
$browser=="Java" || // unknown Java based browser
$browser=="Alca" || // unknown Alcatel-BE3 browser (UP based?)
$browser=="MITS" || // unknown Mitsubishi browser
$browser=="MOT-" || // unknown browser (UP based?)
$browser=="My S" ||// unknown Ericsson devkit browser ?
$browser=="WAPJ" || // Virtual WAPJAG www.wapjag.de
$browser=="fetc" || // fetchpage.cgi Perl script from www.wapcab.de
$browser=="ALAV" || // yet another unknown UP based browser ?
$browser=="Wapa") // another unknown browser (Web based "Wapalyzer"?)
{
$br = "WML";
}
else {
$br = "HTML";
}
}
if($br == "WML") {
// Force the browser to load the WML file instead
header("302 Moved Temporarily");
header("Location: ".$wmlredirect);
exit;
}
else {
// Force the browser to load the HTML file instead
header("302 Moved Temporarily");
header("Location: ".$htmlredirect);
exit;
}
?
这个判断是在服务端完成的, PHP代码将首先查看**是否接收text/vnd.wap.vml MIME类型。如果不是,将检测前面的字符,查看是否为WML浏览器。如果不符合,那么就假设为HTML浏览器。如果有新的WML浏览器,那么ID字符串也要增加。
这个代码基于Robert Whitinger(robert@wapsight.com)的代码,使用了Don Amaro(donamaro.concepcion@nl.unisys.com)提供的列表。
注意:由于只需要四个字符串就可以辨别,因此例如:"WapIDE-SDK/2.0;(R320s(Arial))" 可以使用“WapI”来代替是可行的做法,也是足够的。
同样的功能也可以通过ASP来解决。先判断请求的是“/index.wml” 或者 “/index.html” 和所需要的MIME类型。另外以下的脚本辨别的方式和上面不一样。另外还需要**告诉服务器它能接收的text/vnd.wap.wml MIME类型。该例子如下所示:
%
Response.Buffer = TRUE
Dim IsWap
httpAccept = LCase(Request.ServerVariables("HTTP_ACCEPT"))
if Instr(httpAccept,"wap") then
IsWap=1
Else Response.Redirect "/index.html" : Response.Flush : Response.End
End if
%
%Response.ContentType = "text/vnd.wap.wml"%?xml version="1.0"?
%Response.Flush%
!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
""
wml
card id="redirect"
onevent type="onenterforward"
go href="/index.wml"/
/onevent
p
a href="/index.wml"enter/a
/p
/card
/wml
%Response.Flush:Response.End%
其实代码很简单的,就是首先
<wml></wml>组成一个WAP框架。
<meta http-equiv="Cache-Control" content="max-age=0" /> 表示一些页面设置。
<card id="bug" title="阅读帖子"> 因为wap是手机访问的,一屏幕文字,被称为一个卡片,设置的卡片标题。
<p> </p> 正文内容
<a href=""">※界面</a> 表示超链接。
--------------------------
下面为常用的WML模板代码:
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "">
<wml>
<card id="Main" title="WAP代码实例">
<p align="center">
<b>中 国 被 爱 可 以 在 线</b>
</p>
<p align="left">
『中国被爱可以在线』专注于WAP领域(WAP开发、软件、网站、企业行业应用等),欢迎社会各界人士与我们携手共进,共创WAP
辉煌!
</p>
<p align="center">
<br/>
<**all>www.bicyle.org</**all>
</p>
</card>
</wml>
WML框架模板代码(*.wml)
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "">
<wml>
<card id="FirstCard" title="wap.bicyle.org">
<p align="center">
请在这里书写正文。<br/>
<a href="">欢迎访问中国被爱可以在线</a>
</p>
</card>
</wml>
ASP+WML框架(*.asp)
<%Response.ContentType="text/vnd.wap.wml"%>
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "">
<wml>
<card id="FirstCard" title="wap.bicyle.org">
<p align="center">
欢迎光临<br/>
<a href="">中国被爱可以在线</a><br/>
<%=Date()%>
</p>
</card>
</wml>
ASP+XHTML框架(*.asp)
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "">
<html xmlns="">
<head>
<title>中国被爱可以在线</title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
</head>
<body>
</body>
</html>
ASPX+WML框架(*.aspx)
<%@ Page Language="vb" AutoEventWireup="false"%>
<%Response.ContentType="text/vnd.wap.wml"%>
<script language="VB" runat="server">
Function Add(Byval a as integer,Byval b as integer) as integer
Return a+b
End Function
</script>
<?xml version="1.0" encoding="Utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "">
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=300" forua="true"/>
</head>
<card id="Bike-bicyle" title="被爱可以" newcontext="false">
<p align="left">
<!--(^O^)以下为文件的正文######################## -->
中国被爱可以在线专注于WAP领域、WAP软件、网页、企业行业应用等。 <br/>
<a title="确定" href="">中国被爱可以在线</a><br/>
1981+1982=
<%=Add(1981,1982)%>
<br/>
<!--(^O^)以下为返回链接的一些信息################-->
<a title="确定" href="Index.asp">返回上级</a><br/>
</p>
</card>
</wml>
火狐Firefox(手机版)可以在地址栏里的原URL前加view-source:即可查看源代码。
/iknow-pic.cdn.bcebos.com/fc1f4134970a304eaeb48a01ddc8a786c8175cb2"target="_blank"title="点击查看大图"class="ikqb_img_alink">/iknow-pic.cdn.bcebos.com/fc1f4134970a304eaeb48a01ddc8a786c8175cb2?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc=""/>
扩展资料:1、使用浏览器“标签页”功能PC上的浏览器“标签页”已经算是基本功能,Android手机浏览器其实也支持标签页浏览器,只是使用起来稍显复杂。
2、浏览网页时长按一个url就可以选择在新窗口打开,然后使用Menu键,再选择窗口选项查看任意标签页。
文章已关闭评论!
2025-05-09 23:05:13
2025-05-09 22:45:22
2025-05-09 22:33:25
2025-05-09 22:22:51
2025-05-09 22:01:11
2025-05-09 21:15:02
2025-05-09 21:02:22
2025-05-09 20:43:13