一、 对于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. vue组件创建学习总结

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. JAVA基础积累

    1.ajax同步和异步的区别: 同步是指一个线程要等待上一个线程执行完才能开始执行,同步可以看做是一个单线程操作,只要客户端请求了,在服务器没有反馈信息之前是一个线程阻塞状态.异步是一个线程在执行中, ...

  3. Django中的form组件

    Django中的form组件有两大作用 1.验证获取正确的结果或者错误信息 2.生成html代码 一.为什么需要form组件呢? 在写form表单,提交数据时,自己写验证的代码是一件非常困难的事情. ...

  4. cesium 飞线 瓣体传感器(雷达扫描) 效果

    参考:github地址 本人新手,npm webpack 这些还是一知半解,只记录自己得到成功结果的操作步骤,可能存在多余或错误的步骤. 1.github 把代码下载下来,解压. 2.webstorm ...

  5. 线性表->应用->一元多项式

    文字描述 在数学上,一个一元多项式可以按升幂写成如下形式. 它由n+1个系数唯一确定.因此,在计算机里,可以用一个线性表P来表示,P中每一项的指数i隐含在其系数pi的序号里.   但是在通常的应用中, ...

  6. docker制作tomcat镜像

    准备cestos镜像.tomcat.jdk cestos是docker pull下来的 在/opt/下创建docker:mkdir -p /opt/docker 把tomcat和jdk解压到docke ...

  7. macOS 版微信小助手,支持微信多开、防撤回、远程控制mac、自动回复等等

    微信小助手 GitHub大牛提供的微信小助手是一款插件,该插件具备多开.防撤回.免手机认证登录.自动回复.远程控制自己的 macOS.群发等众多功能 GitHub网址:https://github.c ...

  8. jupyter notebook 动态图显示

    直接在import matplotlib.pyplot as plt 后面加%matplotlib,或者%matplotlib auto就可以通过弹出窗口的形式显示图片

  9. Complex类的实现

    #include<iostream> #include<cmath> using namespace std; class complex{ public: complex() ...

  10. xamarin.forms 动态条件更换数据模板

    解决方案1:  https://oren.codes/2014/12/31/datatemplateselector-for-xamarin-forms/ 解决方案2:  https://docs.m ...