xml、http协议、tomcat(第二章)

本文深入讲解XML的基础知识、用途及语法规范,同时对比XML与HTML的不同,并详细介绍了HTTP协议的基本概念、版本区别及其请求响应机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二章:xml、http协议、tomcat
1.XML
1.1 XML概述
1.什么是xml:英文Extensible MarkUp Language,可扩展的标记语言。

  • 可扩展的标记语言:在xml里面的标记是可以扩展的。

  • xml版本号1.0 ,1.1
    xml用途:它用来存储数据

  • 1.作为系统与系统之间传输数据的格式

  • 2.作为项目的配置文件

  • 3.保存有结构关系型的数据。
    比如:

          <china name="中国">
      	<province name="河北">
      		<city>衡水</city>
      		<city>保定</city>
      		----
      	</province>
      	-----
       </china>
    

2.XML 和 html的比较:
①.xml文档的标记可以随意扩展,html的标记是预定义好的。
②.xml区分大小写,html不区分大小写。
③. html主要是用来显示数据的,xml是用来保存数据的。
④. html中,空格会自动过滤,而xml不会。
⑤. html中可以有多个根节点,在xml里面只有一个。

1.2 XML语法
1.XML的文档声明:
语法:<?xml version="1.0" encoding="utf-8" standalone="yes"?>
属性: version 用来表示xml的版本号
encoding 用来表示xml的编码格式
standalone 用来表示xml文档是否依赖外部的文件。
注意:xml的文档声明一定放到第一行,第一列。
比如:

	<?xml version="1.0" encoding="utf-8"?>
	<china name="zhongguo">
		<province name="hebei">
			<city> hengshui</city>
		</province>
	</china>

2.XML元素定义:
xml文档都是通过元素操作(标记),元素是开始标记、属性、文本和结束标记组成。
比如:标记可以嵌套,必须合理的嵌套

	 <a>
		<b>bbbb</b>
	</a>
	错误的写法:
	<a>
		<b>bbbb</a>
	</b>

3.属性定义:
语法:
属性对应的值要用""给括起来。
4.注释:
html的注释:
javaScript的注释:参照java的注释
xml的注释:

   <!--xml的注释-->

注意:
①. xml是区分大小写的。
②. xml的标记不能以数字或者_下划线开头。比如<1a>内容</1a>,<_a>内容<_a>,错误的写法
③. xml的标记不能以xml或者XML(大小写都不可以)等开头。
④. xml的标记里面不能包含空格等特殊符号,比如内容</a a>,<a:b>内容</a:b> 错误的写法。

1.3 DTD 约束
1.什么是约束:
在xml文档中,咱们可以通过一个文件来约束xml文档中的内容规范,这个规范就是约束。
简单来说:约束就是规定了xml文件中可以写什么,不可以写什么。
为什么要有约束?
因为xml文件可以随意写,如果标记随意写,在解析xml文件时,程序员就不清楚xml文件中的标记具体表示什么含义
所以说用约束规范xml文件的书写。
2.DTD约束
什么是DTD:文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
语法:
比如:

  <!ELEMENT 书架 (书+)>
  <!ELEMENT 书     (书名,作者,价格)>
  <!ELEMENT 书名    (#PCDATA)>
  <!ELEMENT 作者    (#PCDATA)>
  <!ELEMENT 价格    (#PCDATA)>

3.DTD引入:
1.直接在xml文件中,引入dtd约束
语法:

  <!DOCTYPE 书架 [
  <!ELEMENT 书架 (书+)>
  <!ELEMENT 书     (书名,作者,价格)>
  <!ELEMENT 书名    (#PCDATA)>
  <!ELEMENT 作者    (#PCDATA)>
  <!ELEMENT 价格    (#PCDATA)>
]>

2.外部引入方式:

本地引入:
语法:

公网引入:

4.DTD语法:
1.元素定义:
基本语法 <!ELEMENT 元素名称 元素内容>
元素内容对应的类型:

普通的文本:#PCDATA
子元素:比如说:(子元素1,子元素2,—)
EMPTY:比如说
ANY:代表任意内容,元素内容可以是普通的文本,也可以是子元素。
注意:

  • 表示0个或者多个
  • 表示一个或者多个
    | 任选一个
    ,表示子元素按顺序排列
    ? 表示可以出现0或者1

2.属性定义
语法:

<!ATTLIST 元素名称 属性名称 属性类型 默认值>

1
属性类型:
 CDATA:属性值为任意文本数据;
CDATA,即Character Data(字符数据)。表示属性的类型为字符类型!
 Enumerated:属性值必须是枚举列表中的一个;
Enumerated不是关键字,定义枚举类型的属性需要给出枚举列表。当属性值为枚举类型时,那么这个属性的取值必须是枚举列表中的一个值
 ID:属性值必须是唯一的,并且属性值不能以数字开头;
  一个元素最多只能有一个ID 属性,ID属性用来表示元素唯一性的唯一标识。ID属性就相当与元素的身份证号,必须是唯一标识!
 IDREF:属性值必须是ID属性的值;
IDREF属性用来与其他元素建立关联关系,IDREF属性的值必须是另一元素的ID属性值
属性类型的设置说明:
 #REQUIRED:表示属性是必须的;
 #IMPLIED:表示属性是可选的,即这个属性可以不给出;

1.4 Schema约束
1.什么是Schema约束:
它同DTD约束基本一样,也是用来规范xml文件内容的书写规范,只不过Schema的约束比DTD更加强大。
区别:

DTD约束文件的后缀名dtd,机制采用自身的约束。
Scheam约束文件的后缀名是xsd,它是基于xml语法格式。
2.名称空间:
名称空间的作用就是用来在xml文档中引入schema文件的,但是在一个xml文件中可以引入多个schema文件,就可以使用名称空间、
来区分不同的约束文件。
3.引入Schema文档:
第一种方式:通过名称空间来引入shcema文件,第二种:不通过名称空间引入。
4.Schema语法:

>>> 元素定义	>>>属性定义。

1
2.HTTP协议:
1.1 HTTP概述:
1.HTTP简单
什么是http协议:规范了浏览器和服务器交互或者通信的规则。
https: 基于http实现的,比http更加安全,提供了身份验证和通信内容加密。
服务器从二个层面:

硬件:配置比较高的电脑。
软件:它就是一个应用。比如 前面用过的mysql数据库服务器
2.Http 1.0 和Http 1.1
区别:http1.0 通信基制,每次从浏览器向服务器发送请求,都需要建立一个新的TCP连接。
http1.1 建立一个Tcp连接,可以发送多个请求,服务器在作出多个响应后,最后关闭这个Tcp连接。
3.Http消息:
http是基于请求和响应的。
Http消息:

请求信息:
请求头信息:

	Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
	Accept-Encoding	gzip, deflate
	Accept-Language	zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
	Connection	keep-alive
	Host	localhost:8080
	Referer	http://localhost:8080/aa/regDemo.html
	User-Agent	Mozilla/5.0 (Windows NT 6.2; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0

响应信息:
响应头信息:

    Accept-Ranges	bytes
	Content-Length	331
	Content-Type	text/html
	Date	Mon, 20 Feb 2017 09:53:34 GMT
	Etag	W/"331-1449652621901"
	Last-Modified	Wed, 09 Dec 2015 09:17:01 GMT
	Server	Apache-Coyote/1.1

注意:浏览器有自带的抓包功能(查看请求和响应信息),点击F12(fn+f12).
火狐浏览器firebug插件抓包。
ie浏览器使用httpwatch插件抓包。

1.3 HTTP请求消息

请求行:

POST /aa/registersuccess.html HTTP/1.1

分三部分:

第一部分:请求的方式。
第二部分:请求的资源地址
第三部分:请求的协议和版本号
请求头信息:

	Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
	Accept-Encoding	gzip, deflate
	Accept-Language	zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
	Connection	keep-alive
	Host	localhost:8080
	Referer	http://localhost:8080/aa/regDemo.html
	User-Agent	Mozilla/5.0 (Windows NT 6.2; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0

比如:host 请求资源主机的ip地址和端口号
Referer:请求是从什么地方发起的。
User-Agent:浏览器的版本、类型,以及内核。

请求正文(只有post请求,才有请求正文):

 username=aaa_bbb&password=123456&phone=13800000000
     get请求和post请求的区别: get请求没有请求正文,get请求的数据在浏览器的地址栏
			   post请求有请求正文,请求的数据在请求正文里面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值