一、 对于XML,我分别从以下几个方面来简述:

  1、定义:

  XML是一种可扩展的标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。

  (可扩展标记语言:可扩展标记语言是一种很像超文本标记语言的标记语言;它的设计宗旨是传输数据,而不是显示数据;它的标签没有被预定义。您需要自行定义标签;它被设计为具有自我描述性;它是W3C的推荐标准。)

  2、特点:

  2.1  简洁有效。
  XML是一个精简的SGML,它将SGML的丰富功能与HTML的易用性结合到Web应用种,它保留了SGML的可扩展功能,这使得XML从根本上有区别于HTML。并且XML种还包括可扩展格式语言XSL(Extensible
Style Language)和可扩展链接语言XLL(Extensible     Linking Language)使得XML的显示和解析更加方便快捷。
  2.2  易学易用。
  XML对SGML进行了精简,它抛弃了SGML中不常用的部分,方便用户编写Web页面同时也给设计人员实现XML浏览器降低了困难。
  2.3  开放的国际化标准。
  XML是W3C正式批准的,它完全可用于Web和工具的开发。XML具有标准的名域说明方法,支持文档对象模型标准、可扩展类型语言标准、可扩展链接语言标准和XML指针语言标准。使用XML可以在不同的计算机系统间交换信息,而且还可以跨越国界和超越不同文  化疆界交换信息。
  2.4  高效可扩充。
  XML支持复用文档片断,使用者可以发明和使用自己的标签,也可以与他人共享,可延伸性大。在XML中,可定义一组无限量的标准,可以有效地进行XML文件的扩充。

  3、用途:

  3.1 数据交换

  用XML在应用程序和公司之间作数据交换已不是什么秘密了,毫无疑问应被列为第一位。 那么为什么XML在这个领域里的地位这么重要呢?原因就是XML使用元素和属性来描述数 据。在数据传送过程中,XML始终保留了诸如父/子关系这样的数据结  构。几个应用程序 可以共享和解析同一个XML文件,不必使用传统的字符串解析或拆解过程。 相反,普通文件不对每个数据段做描述(除了在头文件中),也不保留数据关系结构。使用XML做数据交换可以使应用程序更具有弹性,因为可以用位置(与  普通文件一样)或用元 素名(从数据库)来存取XML数据。

  3.2 Web服务

  Web服务是最令人激动的革命之一,它让使用不同系统和不同编程语言的人们能够相互交 流和分享数据。其基础在于Web服务器用XML在系统之间交换数据。交换数据通常用XML标 记,能使协议取得规范一致,比如在简单对象处理协  议(     Simple Object Access Protoc ol, SOAP)平台上。 SOAP可以在用不同编程语言构造的对象之间传递消息。这意味着一个C#对象能够与一个 Java对象进行通讯。这种通讯甚至可以发生在运行于不同操作系统上的  对象之间。DCOM , CORBA或      Java RMI只能在紧密耦合的对象之间传递消息,SOAP则可在松耦合对象之间传 递消息。

  3.3 内容管理

  XML只用元素和属性来描述数据,而不提供数据的显示方法。这样,XML就提供了一个优 秀的方法来标记独立于平台和语言的内容。 使用象XSLT这样的语言能够轻易地将XML文件转换成各种格式文件,比如HTML, WML, PD 
  F, flat file, EDI, 等等。XML具有的能够运行于不同系统平台之间和转换成不同格式 目标文件的能力使得它成为内容管理应用系统中的优秀选择。

  3.4 Web集成

  现在有越来越多的设备也支持XML了。使得Web开发商可以在个人电子助理和浏览器之间 用XML来传递数据。 为什么将XML文本直接送进这样的设备去呢?这样作的目的是让用户更多地自己掌握数据 显示方式,更能体验到实践的快乐。常规的客户/  服务(C/S)方式为了获得数据排序或更 换显示格式,必须向服务器发出申请;而XML则可以直接处理数据,不必经过向服务器申 请查询-返回结果这样的双向“旅程”,同时在设备也不需要配制数据库。 甚至还可以对设备上的XML文件进行修改并将结果  返回给服务器。想像一下,一台具有互 联网功能并支持XML的电冰箱将会给市场带来多么大的冲击吧。你从此不必早起去取牛奶 了!

  3.5 配置

  许多应用都将配制数据存储在各种文件里,比如.INI文件。虽然这样的文件格式已经使 用多年并一直很好用,但是XML还是以更为优秀的方式为应用程序标记配制数据。使用. NET里的类,如XmlDocument和XmlTextReader,将配制数据标记为XML格  式,能使其更具 可读性,并能方便地集成到应用系统中去。使用XML配制文件的应用程序能够方便地处理 所需数据,不用象其他应用那样要经过重新编译才能修改和维护应用系统。 如前所述,这里提到的五种使用XML的途径不包括全部场合。

  3.6 XML 用于创建新的 Internet 语言

  很多新的 Internet 语言是通过 XML 创建的:

  其中的例子包括:

  • XHTML - 最新的 HTML 版本
  • WSDL - 用于描述可用的 web service
  • WAP 和 WML - 用于手持设备的标记语言
  • RSS - 用于 RSS feed 的语言
  • RDF 和 OWL - 用于描述资源和本体
  • SMIL - 用于描述针针对 web 的多媒体

二、Web请求过程

  1.准备DHCP,UDP,IP和以太网

  客户端要访问www.google.com的网站。首先客户端要与网络相接,没有IP地址地址就不能做什么事情,所以客户端采取的一个网络相关的动作就是运行DHCP协议,以及本机的DHCP服务器获得一个IP地址/
  1.1 操作系统生成一个DHCP请求报文,并将这个报文放到UDP报文段中,该UDP报文段则被放置在一个具有广播IP目的地地址(255.255.255.255)和源IP地址0.0.0.0的IP数据报中,因为客户端还不具有IP地址
  1.2 包含DHCP请求报文的IP数据报则被放置到以太网帧中,该以太网帧具有目的MAC地址FF:FF:FF:FF:FF:FF,使该帧广播到与交换机连接的所有设备中(顺利的话也包括DHCP服务器)
  1.3 客户端通过dhcp服务器获取一个IP地址

  2.准备DNS和ARP

  当在浏览器 页面输入www.google.com的时,他开启了一个长串事件,web浏览器通过生成一个TCP套接字开始了该过程,套接字用于向web浏览器发送HTTP请求,为了生成套接字,客户端需要知道www.google.com的IP地址。这需要DNS服务
  2.1 客户端的操作系统生成一个DNS查询报文,开始了一个DNS查询请求。将字符串www.google.com放入DNS报文中,客户端将包含DNS请求报文的的数据报放入一个以太网帧中,该帧将发送(在链路层)到网络的网关路由器。为了获取该网关路由器的MAC地址,需要是要  ARP协议。
  2.2 客户端便开始生成了一个具有目的IP地址的ARP查询报文,将该ARP报文放置在一个以太网帧中,交换机将该帧交付给所有链接的设备,包括网管路由器
  2.3 网关路由器收到请求以后 ,会准备一个ARP回答,再有交换机交付给客户端
  2.4 现在客户端能够使用包含DNS查询的以太网帧寻址到网管路由器的MAC地址,客户端向交换机发送该帧,交换机在将该帧交付给网管路由器。

  3.域内路由选择DNS服务器

  3.1网关路由器收到并抽取包含DNS查询的IP的数据包,路由器查询该数据报的目的地址将包含DNS查询的IP数据包到达了DNS服务器。DNS服务器抽取到

DNS查询报文,在他的DNS数据库中查找名字www.google.com,找到包含对应www.google.com的IP地址。该DNS服务器形  成一个包含这种主机名到IP地址映射的DNS回答报文,并将DNS回答报文放入UDP的报文段,该报文段警网络交付到客户端,最后从DNS报文中抽取着出www.google.com的IP地址。

  4.客户于服务器的交互。TCP和HTTP

  客户端有了www.google.com的IP地址,他能够生成TCP套接字,该套接字用于项www.google.com发送HTTP
GET报文。经过TCP三次握手建立了一个连接。www.google.com的HTTP服务器从TCP套接字读取HTTP
GET报文,生成一个HTTP响应报文,将请求的web页面内容放入HTTP  响应报文中,并将报文发送进TCP套接字。
  包含HTTP回到报文的数据报通过网络转发,到达客户端,客户端从套接字中读取HTTP响应,从HTTP响应体中抽取web页面的html,并最终显示web页面。

JAVA EE 第二周(XML简述以及web请求的过程)的更多相关文章

  1. eclipse中Tomcat version 9.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5, 6, 7, and 8 Web modules

    eclipse中导入了一个别人的项目,运行时提示没有可以使用的服务器,如下: 查看了下项目属性设置中的服务器,还是提示没有可用服务器: 尝试对部署在已有服务器下的项目Add and Remove... ...

  2. 2017面向对象程序设计(Java)第二周学习总结

    2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...

  3. 使用Java EE 在eclipse 开发动态的Web工程(Java web项目)

    1.使用Java EE 在eclipse 开发动态的Web工程(Java web项目)1)开发开发选项切换到JavaEE2)可以在Windows->show view中找到package exp ...

  4. 2017-2018-1 JAVA实验站 第二周作业

    2017-2018-1 JAVA实验站 第二周作业 小组成员: 组长 20162318张泰毓 成员 20162303石亚鑫 20162304张浩林 20162307张韵琪 20162321王彪 201 ...

  5. 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结

    丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...

  6. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  7. JAVA语言 第二周

    放假第二周了,时间真快! 上一周配置好了环境变量,这一周就可以做一些测试了.对不同的内容分类进行了测试,包括写入.输出.变量·······还有很多.对于开学的试卷,在第一部分做的还行,第二部分就没什么 ...

  8. Java学习第二周学习笔记

    20145307<Java程序设计>第二周学习总结 教材学习内容总结 Java语言中的很多基本语法都和C语言类似,以下Java中的基本语法 标识符 标识符是程序中自定义的一些名称. 由26 ...

  9. 201671010140. 2016-2017-2 《Java程序设计》java学习第二周

                                 学习第二周(Java基本程序设计结构)      这一周,着重学习了Java的简单程序设计实现及运行,通过自己操作,发现Java的程序语法大面 ...

随机推荐

  1. Prometheus 和 Grafana 安装部署

    Prometheus 是一套开源的系统监控报警框架.Prometheus 作为生态圈 Cloud Native Computing Foundation(简称:CNCF)中的重要一员,其活跃度仅次于 ...

  2. 傅里叶变换及其应用讲义(stanford_ee261)

    链接:http://pan.baidu.com/s/1bprVIqF 密码:q5iv

  3. 【zc】 PHP中json_encode(编码) 与 json_decode(解码) 【aa】

    一.json_encode() 对变量进行JSON编码, 语法: json_encode ( $value [, $options = 0 ] ) 注意:1.$value为要编码的值,且该函数只对UT ...

  4. Python3.6 提示 ModuleNotFoundError: No module named '_ssl' 模块问题

    国内 163 yum 源挺好用 (中科大的也不错) http://mirrors.163.com/.help/CentOS6-Base-163.repo yum install openssl-dev ...

  5. A计划 HDU - 2102

    A计划 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  6. CQL语句

    CQL中默认忽略大小写,若需要大小写敏感,可使用双引号将对象包起来,引用的时候也要用双引号包住 tips: 使用CQL需要预装Python环境 Ⅰ.基本知识点 1.1 数据类型 这边和关系型数据库相近 ...

  7. 关于HTTP协议学习(一)

    一,目录结构 B/S 结构定义 URI (统一资源标志符) HTTP 协议 HTTP 请求报文 HTTP 响应报文 HTTP Methods HTTP Status Code 二,B/S,C/S 结构 ...

  8. linux 常用压缩解压命令

    压缩格式          打包/解压                   执行命令 .tar                    解包                           tar ...

  9. linux echo 命令 打印字符串

    打印字符串 [root@MongoDB ~]# echo "heloworld" heloworld

  10. 获取UILabel的numberOfLine

    获取UILabel的numberOfLine CGFloat textH = [self.label.text boundingRectWithSize:CGSizeMake(width, MAXFL ...