博文

HTML <div> 和 <span>(2013-07-27 13:36:00)

摘要: 可以通过 <div> 和 <span> 将 HTML 元素组合起来。 HTML 块元素 大多数 HTML 元素被定义为块级元素或内联元素。 编者注:“块级元素”译为 block level element,“内联元素”译为 inline element。 块级元素在浏览器显示时,通常会以新行来开始(和结束)。 例子:<h1>, <p>, <ul>, <table> HTML 内联元素 内联元素在显示时通常不会以新行开始。 例子:<b>, <td>, <a>, <img> HTML <div> 元素 HTML <div> 元素是块级元素,它是可用于组合其他 HTML 元素的容器。 <div> 元素没有特定的含义。除此之外,由于它属于块级元素,浏览器会在其前后显示折行。 如果与 CSS 一同使用,<div> 元素可用于对大的内容块设置样式属性。 <div> 元素的另一个常见的用途是文档布局。它取代了使用表格定义布局的老式方法。使用 <table> 元素进行文档布局不是表格的正确用法。<table> 元素的作用是显示表格化的数据。 HTML <span> 元素 HTML <span> 元素是内联元素,可用作文本的容器。 <span> 元素也没有特定的含义。 当与 CSS 一同使用时,<span> 元素可用于为部分文本设置样式属性。 HTML 分组标签 标签 描述 <div> 定......

阅读全文(2133) | 评论:2

使用相对Url无缝切换HTTP-HTTPS(2012-11-24 11:44:00)

摘要: 概述 在HTTPS的网站下,如果要访问HTTP资源,那么一般浏览器会弹出窗口询问用户是否允许加载不安全内容,云云。为了避免出现这样干扰用户的情况,所有网页下请求的资源都都必须是HTTPS资源。如果你的站点支持HTTP和HTTPS两种方式访问,而实际网站只有一份的话,这种情况下,你可以使用相对Url的方式改写网页内资源的请求Url。 省略Scheme的相对Url语法 Url相对路径我们并不陌生,下面这样的写法非常常见。
<img src='/images/myphoto.jpg' /> <img src='myphoto.jpg' />
如果该HTML代码放在http://myexample.com/myblog/index.html上,那么第一幅图片的实际完整地址就是http://myexample.com/images/myphoto.jpg,而第二幅图片的实际地址是http://myexample.com/myblog/myphoto.jpg。 但是省略Url中的Scheme部分这样的相对路径写法却比较少见。例如:
<img src='//myimagehosting.com/images/myphoto.jpg' />
这行代码如果放在HTTP的网页上,那么请求的资源就是HTTP://myimagehosting.com/images/myphoto.jpg,如果放在HTTPS上,则访问的资源就是HTTPS的。这样一来我们就无需为HTTP和HTTPS各自准备不同的网页了。 标准规范 RFC1808文档是专门针对相对URI的,其中提到,除了URI中的Scheme部分,其他部分均可以做适当的省略。也就是说,这样的写法是不符合规范。RFC1808文档是95年的时候定稿的。后来的RFC3986文档对URI做出了更为详细的规范,废弃了RFC1808对相对URI引用的建议规范(4.2 Relative Reference一节)。 以Scheme:开头的(如http:、file:、ftp:)均为绝对URI引用。否则......

阅读全文(4043) | 评论:1

Email电子邮件应用分析(2012-08-12 11:02:00)

摘要:
Email电子邮件应用分析

一、        邮件传输协议简介
1.        邮件传输概念
邮件服务是Internet上最常用的服务之一,它提供了与操作系统平台无关的通信服务,使用邮件服务,用户可通过电子邮件在网络之间交换数据信息。邮件传输包括将邮件从发送者客户端发往邮件服务器,以及接收者从邮件服务器将邮件取回到接收者客户端。
2.        SMTP和POP3
在TCP/IP协议簇中,一般使用SMTP协议发送邮件,POP3协议接收邮件。
SMTP,全称Simple Message Transfer Protocol,中文名为简单邮件传输协议,工作在TCP/IP层次的应用层。SMTP采用Client/Server工作模式,默认使用TCP 25端口,提供可靠的邮件发送服务。
POP3,全称Post Office Protocol 3,中文名为第三版邮局协议,工作在TCP/IP层次的应用层。POP3采用Client/Server工作模式,默认使用TCP 110端口,提供可靠的邮件接收服务。
3.        SMTP和POP3的工作原理
发送和接收邮件都需要以下两个组件:用户代理(UA,常用的是Foxmail或Outlook)和SMTP/POP3服务器。
SMTP工作原理:
1)        客户端使用TCP协议连接SMTP服务器的25端口;
2)        客户端发送HELO报文将自己的域地址告诉给SMTP服务器;
3)    &n......

阅读全文(1915) | 评论:0

电子邮件收发原理和实现(POP3, SMTP) [整理](2012-08-12 11:01:00)

摘要: 电子邮件的收发流程示意图:



相对于邮件客户端的流程就是:




邮件接收——POP3协议
POP3(Post Office Protocol 3,邮局协议版本3)主要用于支持使用客户端远程管理在服务器上的电子邮件。该协议是在RFC-1939中定义的,是Internet上的大多数人用来接收邮件的机制。POP3采用Client/Server工作模式,默认使用TCP 110端口。
* 在使用POP协议时,人们熟悉的很多功能,如查看收到了多少新邮件消息的功能,POP根本不支持。这些功能都内置到诸如Eudora或 Microsoft Outlook之类的邮件程序中,能为您记住接收的上一封邮件,以及计算有多少新邮件这类信息。因此,如果想获取这类信息,将需要由自己进行计算。
[详细请参考wiki的解析:http://zh.wikipedia.org/wiki/POP3]
<POP3状态图>



<POP3常用命令表>

* 对大小写不敏感,以CRLF作为结束
[详细可参考RFC1939协议,http://www.rfc-ref.org/RFC-TEXTS/1939/contents.html]

>> 命令可能的返回值
+ OK <描述>  成功
- ERR <描述> 失败

<POP3工作原理>
1)        客户端使用TCP协议连接邮件服务器的110端口;
2)        客户端使用USER命令将邮箱的账号传给POP3服务器;
3)     &nb......

阅读全文(1893) | 评论:0

SMTP协议原始命令码和工作原理(2012-08-12 11:00:00)

摘要:SMTP协议原始命令码和工作原理

1.SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个
服务器
2.SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。响应包括一个表示返
回状态的三位数字代码
3.SMTP在TCP协议25号端口监听连接请求
4.连接和发送过程:

a.建立TCP连接
b.客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令
服务器端正希望以OK作为响应,表明准备接收
c.客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行
服务器端则表示是否愿意为收件人接受邮件
d.协商结束,发送邮件,用命令DATA发送
e. 以.表示结束输入内容一起发送出去
f.结束此次发送,用QUIT命令退出。


5.另外两个命令:
VRFY---用于验证给定的用户邮箱是否存在,以及接收关于该用户的详细信息。
EXPN---用于扩充邮件列表。

6.邮件路由过程:
SMTP服务器基于‘域名服务DNS中计划收件人的域名来路由电子邮件。SMTP服务器基于DNS中的MX记录
来路由电子邮件,MX记录注册了域名和相关的SMTP中继主机,属于该域的电子邮件都应向该主机发送。

若SMTP服务器mail.abc.com收到一封信要发到shuser@sh.abc.com:

a.Sendmail请求DNS给出主机sh.abc.com的CNAME记录,如有,假若CNAME到shmail.abc.com,则再次
请求shmail.abc.com的CNAME记录,直到没有为止
b.假定被CNAME到shmail.abc.com,然后sendmail请求@abc.com域的DNS给出shmail.abc.c......

阅读全文(1588) | 评论:0

什么是POP3协议,什么是SMTP协议,如何设置(2012-08-12 10:58:00)

摘要: 利用E-mail软件收发电子邮件,我们需要设置POP3服务器和SMTP服务器的地址,那么,什么是POP3,什么又是SMTP呢?下面我们就给大家介绍一下。 简单的说:pop3协议是收邮件协议,smtp协议是发邮件协议。 POP3(Post Office Protocol 3)即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,我们就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转你发出的电子邮件。   当然,只有提供了POP3服务的信箱才能直接利用E-mail软件收发电子邮件,否则我们只有进入它的主页,才能收发邮件,如:微软的Hotmail免费信箱等。 转自:http://zhidao.baidu.com/question/535585.html 附:国内常用免费邮件POP3和SMTP设置 2005-7-6 0:56:00 1.网易邮箱 POP3 和 SMTP 服务器地址设置:
邮箱 POP3 服务器(端口110) SMTP 服务器(端口25)
@163.com pop3.163.com smtp.163.com
@126.com pop3.126.com smtp.126.com
@netease.com pop.netease.com smtp.netease.com
@yeah.net pop.yeah.net smtp.y......

阅读全文(2366) | 评论:0

用C++实现网络编程---抓取网络数据包的实现方法(2012-08-12 09:21:00)

摘要: 做过网管或协议分析的人一般都熟悉sniffer这个工具,它可以捕捉流经本地网卡的所有数据包。抓取网络数据包进行分析有很多用处,如分析网络是否有网络病毒等异常数据,通信协议的分析(数据链路层协议、IP、UDP、TCP、甚至各种应用层协议),敏感数据的捕捉等。下面我们就来看看在windows下如何实现数据包的捕获。 下面先对网络嗅探器的原理做简单介绍。 嗅探器设计原理 嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进行。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。 具体到编程实现上,这种对网卡混杂模式的设置是通过原始套接字(raw socket)来实现的,这也有别于通常经常使用的数据流套接字和数据报套接字。在创建了原始套接字后,需要通过setsockopt()函数来设置IP头操作选项,然后再通过bind()函数将原始套接字绑定到本地网卡。为了让原始套接字能接受所有的数据,还需要通过ioctlsocket()来进行设置,而且还可以指定是否亲自处理IP头。至此,实际就可以开始对网络数据包进行嗅探了,对数据包的获取仍象流式套接字或数据报套接字那样通过recv()函数来完成。但是与其他两种套接字不同的是,原始套接字此时捕获到的数据包并不仅仅是单纯的数据信息,而是包含有 IP头、 TCP头等信息头的最原始的数据信息,这些信息保留了它在网络传输时的原貌。通过对这些在低层传输的原始信息的分析可以得到有关网络的一些信息。由于这些数据经过了网络层和传输层的打包,因此需要根据其附加的帧头对数据包进行分析。下面先给出结构.数据包的总体结构: 数据包 IP头 ......

阅读全文(17270) | 评论:10

什么是Query String(2012-07-04 13:48:00)

摘要: 在World Wide Web上, query string是Uniform Resource Locator (URL)的一部分, 其中包含着需要传给web application的数据.
当通过Hypertext Transfer Protocol请求一个页面的时候, 服务器根据请求的URL来在文件系统中定位到请求的文件. 这个文件可能是一个普通的文件, 也可能是一个程序. 如果是第二种情况的话, 服务器需要运行这个程序, 之后把运行的结果作为一个页面返回. query string是传递给这个程序的URL的一部分, 通过对它的使用, 可以允许我们从HTTP的client端发送数据给生成web page的应用程序.
典型的包括query string的URL看起来像这样: http://server/path/program?query_string
举例: http://localhost/sites/mydoclib/forms/allitems.aspx?SortField=Last%5fx0020%5fModified&SortDir=Asc&View=%7b5A385845%2d3E06%2d4A5E%2d9733%2d1B872A014410%7d
特点如下: 变量名和变量值用=号隔开. 多个参数之间用ampersand, '&' 或 semicolon, ';'分隔. 参数中的字符采用了URL Encoding. 摘自: Query string http://en.wikipedia.org/wiki/Query_string ......

阅读全文(2450) | 评论:0

什么是Web Service(2012-06-14 20:25:00)

摘要:




你可能早就听说过Web Service了,你也可能已经对Web Service有了一些概念,现在不管是在什么场合,谈到以后发展的新趋势,大家都会提到Web Service。世界上的顶级公司,不管是微软、IBM还是SUN,都开始把Web Service频繁地挂在嘴边。大多数媒体也开始鼓吹Web Service是多么的好,多么的有前途或者“钱”途……但Web Service到底是什么呢?数据库通过网页实现服务?网络上的协议?还是一种软件的标准?

在http//www.hexiesoft.net 上你可以欣赏到.NET下使用微软开发工具建立的Web Service企业级ERP应用系统。

在http//dwdemos.alphaworks.ibm.com/HospitalProj/index.html上,你可以体验使用IBM开发工具创建的提供医疗保险信息查询的Web Service。

Web Service概念

什么是Web Service呢?从表面上看,Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。例如,笔者创建一个Web Service,它的作用是查询某公司某员工的基本信息。它接受该员工的编号作为查询字符串,返回该员工的具体信息。你可以在浏览器的地址栏中直接输入HTTP GET请求来调用罗列该员工基本信息的ASP页面,这就可以算作是体验Web Service了。

从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。

Web Service便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。它可以使用标准的互......

阅读全文(1415) | 评论:0

什么叫SNMP协议?(2012-01-13 14:09:00)

摘要:SNMP(Simple Network Management Protocol)即简单网络管理协议,它为网络管理系统提供了底层网络管理的框架。SNMP协议的应用范围非常广泛,诸多种类的网络设备、软件和系统中都有所采用,主要是因为SNMP协议有如下几个特点: 
首先,相对于其它种类的网络管理体系或管理协议而言,SNMP易于实现。SNMP的管理协议、MIB及其它相关的体系框架能够在各种不同类型的设备上运行,包括低档的个人电脑到高档的大型主机、服务器、及路由器、交换器等网络设备。一个SNMP管理代理组件在运行时不需要很大的内存空间,因此也就不需要太强的计算能力。SNMP协议一般可以在目标系统中快速开发出来,所以它很容易在面市的新产品或升级的老产品中出现。尽管SNMP协议缺少其它网络管理协议的某些优点,但它设计简单、扩展灵活、易于使用,这些特点大大弥补了SNMP协议应用中的其他不足。 
 
其次,SNMP协议是开放的免费产品。只有经过IETF的标准议程批准(IETF是IAB下设的一个组织),才可以改动SNMP协议;厂商们也可以私下改动SNMP协议,但这样作的结果很可能得不偿失,因为他们必须说服其他厂商和用户支持他们对SNMP协议的非标准改进,而这样做却有悖于他们的初衷。 
 
第三,SNMP协议有很多详细的文档资料(例如RFC,以及其它的一些文章、说明书等),网络业界对这个协议也有着较深入的理解,这些都是SNMP协议近一步发展和改进的基础。 
 
最后,SNMP协议可用于控制各种设备。比如说电话系统、环境控制设备,以及其它可接入网络且需要控制的设备等,这些非传统装备都可以使用SNMP协议。 
 
正是由于有了上述这些特点,SNMP协议已经被认为是网络设备厂商、应用软件开发者及终端用户的首选管理协议。 
SNMP是一种无连接协议,无连接的意思是它不支持象TELNET或FTP这种专门的连接。通过使用请求报文和返回响应的方式,SNMP在管理代理和管理员之间传送信息。这种机制减轻了管理代理的负担,它不必要非得支持其它协议及基于......

阅读全文(1600) | 评论:0