XML、DTD约束、Schema约束、HTTP协议

java web

第二章:xml、http协议、tomacat

XML

XML概述

什么是xml:英文Extensible MarkUp Language,可扩展的标记语言。

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

​ 版本: 1.0和1.1

xml的用途:用来存储数据

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

  2. 作为项目的配置文件

  3. 保存有结构关系型的数据。

    比如:
    <China name="中国”>
    <province name="河北”>
    ​ < city > 衡水< /city >
    ​ < city > 保定< /city >
    ​ < /province>
    ​ < /China>

XML和html的区别:

  1. xml文档的标记可以随意扩展,html的标记是预定义好的,不可以随意写。

  2. xml区分大小写,html不区分大小写。
  3. html主要是用来显示数据的,xml是用来保存数据的。
  4. html中,空格会自动过滤,而xml不会
  5. html中可以有多个根节点,在xml里面只有一个

XML语法

  1. XML的文档声明

    语法:<?xml version="1.0"encoding="utf-8"standalone="yes"?>

    属性: version 用来表示版本号

    ​ encoding 用来表示xml的编码格式

    ​ standalone 用来表示xml文件是否依赖外部的文件

    注意:xml的文档声明一定要放到文档的第一行第一列

  2. XML元素定义

    xml文档都是通过元素操作(标记),元素是开始、属性和结束标记组成的

    比如:标记可以合理的嵌套。

  3. 属性定义

    语法:

    ​ 属性对应的值要用“”给括起来

  4. 注释

​ html的注释:

​ xml:

注意:

1. xml是区分大小写的
   2. xml的标记不能以数字或者下划线_开头
   3. xml的标记不能以xml或者XML等开头
   4. xml的标记里面不能包含空格等特殊符号,比如  ,:

XML约束

  1. 什么是约束:在xml文档中,可以通过一个文件来约束xml文档中的内容规范

简单来说,约束就是规定xml文件中可以写什么,不可以写什么

  1. 为什么要有约束?

    因为xml文件可以随意写,如果标记随意写,在解析xml文件时,程序就不清楚xml文件中标记具体表示什么含义,所以说用约束规范xml的书写

  2. 创建约束文件

    语法:<!ELEMENT 元素名称 元素内容>

    比如: <!ELEMENT 书架 (书+)>

    ​ <!ELEMENT 书 (书名,作者,价格)>

    ​ <!ELEMENT 书名(#PCDATA)>

    ​ <!ELEMENT 作者 (#PCDATA)>

    ​ <!ELEMENT 价格(#PCDATA)>

DTD约束
  • 引入方式

    1. 直接在xml文件中引入

    ​ <!DOCTYPE 书架[

    ​ <!ELEMENT 书架 (书+)>

    ​ <!ELEMENT 书 (书名,作者,价格)>

    ​ <!ELEMENT 书名(#PCDATA)>

    ​ <!ELEMENT 作者 (#PCDATA)>

    ​ <!ELEMENT 价格(#PCDATA)>

    ]>

    1. 外部引入方式

      • 本地引入:

        • <!DOCTYPE书架 SYSTEM “book.dtd”>
      • 公网引入:

      • DTD语法

      1. 元素定义

      基本语法<!ELEMENT 元素名称 元素内容>

      元素内容对应的类型

      • 普通文本:#PCDATA

      • 子元素:比如说(元素1,元素2,元素3)

      • EMPTY:比如说

      • ANY:代表任意内容,元素内容可以是普通文本,可以是子元素

        注意:

        *表示0个或者多个

        +表示一个或者多个

        |表示任选一个

        ,表示子元素按顺序排列

        ?表示可以出现0或者1

      1. 属性定义
      • CDATA:属性值为任意文本数据
      • Enumerated:属性值必须是枚举表中的一个。它不是关键字,定义枚举型的属性要给出枚举列表
      • ID:属性值必须是唯一的,并且属性值不能以数字开头 。一个元素最多只有一个ID,ID属性用来表示元素的唯一标识,
      • IDREF:属性值必须是ID属性的值。它是用来与其他元素建立关联关系,IDREF属性的值必须是另一个元素的ID属性值
Schema约束
  • 什么是Schema约束:它跟DTD约束基本一样,也是用来规范xml文本内容的书写规范,只不过Schema约束比DTD约束更加强大。

  • 区别:

    • DTD约束文件的后缀名dtd,机制采用自身的约束。
    • Schema约束文件的后缀名是xsd,他是机遇xml语法格式(更贴合)。
  • 名称空间:名称空间的作用就是用来在xml文档中引入schema文件的,但是在一个xml文件中可以引入多个schema文件,就可以使用名称空间来区分不同的约束文件

  • 引入Schema文档

    • 第一种方式:通过名称空间来引入schema文件
    • 第二种方式:不通过名称空间引入
  • Schema语法

    • 元素定义
    • 属性定义

HTTP协议

  • HTTP概述:

    ​ 什么是http协议:规范了浏览器和服务器交互或者通信的规则。

    https:基于http实现的,比http更加安全,多了提供了身份验证和通信内容加密的机制

    服务器从两个层面理解:

      - 硬件:配置高的电脑
      - 软件:它就是一个应用。 比如:前面用过的mysql数据库服务器
    
    • Http 1.0和Http 1.1

      区别:

      • http1.0通信机制,每次从浏览器向服务器发送请求,都需要和服务器建立连接
      • http1.1建立一个Tcp;连接,可以发送多个请求,服务器在作出多个响应后,最后关闭这个Tcp连接
  • Http消息:

    http是基于请求和响应的。

    1. 请求信息:

      请求头信息:

    2. 响应信息:

      响应头信息:

      注意:浏览器有自带的抓包功能(查看请求和响应消息F12)

HTTP请求消息

  • 请求行:POST /aa/registersuccesss.html HTTP/1.1

    分三部分:

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

    ​ Accept text/htm,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

    ​ Referer http://localhost:8080/aa/regDemo.html

    ​ User-Agent Mozilla/5.0(Window NT 6.2;WOW64;rv:20.0)Gecko/20100101 Firefox/20.0

    比如说: host请求资源主机的ip地址和端口号

    ​ Referer:请求是从什么地方发起的

    ​ UserAgent:浏览器的版本、类型以及内核。

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

    username=aaa_bbb&password=123456&phone=13800000000

  • get请求和post请求的区别:get没请求正文,get请求的数据在浏览器的地址栏

    ​ post请求有请求正文,请求的数据在请求正文里面。

    Referer:防止盗链,通过来访的地址判断是从什么地方发起的。如果不是自己网站发送的请求不于访问。

响应信息

响应信息分三部分:

  • 响应行信息: HTTP/1.1 200 OK

    • 协议和版本号
    • 状态码 :200,302,304,404,405,500等,比如200:响应成功
    • OK:对状态码的描述
  • 响应头信息:

    ​ Accept-Ranges bytes

    ​ Content-Length 331

    ​ Content-Type text/html

    ​ Date Mon,20 Feb 2007 09:53:34 GMT

    ​ Etag W/“331-1449652621901”

    ​ Last-Modified Web,09 Dec 2015 09:17:01 GMT

    ​ Server Apache-Coyote/1.1

    比如:Server 响应头队友的就是使用的服务器

  • 响应正文信息: 注册成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值