zoukankan      html  css  js  c++  java
  • html 简介

    Web服务本质

    import socket
    
    
    sk = socket.socket()
    
    sk.bind(("127.0.0.1", 8080))
    sk.listen(5)
    
    
    while True:
        conn, addr = sk.accept()
        data = conn.recv(8096)
        conn.send(b"HTTP/1.1 200 OK
    
    ")
        conn.send(b"<h1>Hello world!</h1>")
        conn.close()
    
    浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面
    

    HTTP协议

    """
    超文本传输协议 用来规定服务端和浏览器之间的数据交互的格式...
    
    该协议你可以不遵循 但是你写的服务端就不能被浏览器正常访问 你就自己跟自己玩
    你就自己写客户端 用户想要使用 就下载你专门的app即可
    """
    # 四大特性
    1.基于请求响应
    2.基于TCP/IP作用于应用层之上的协议
    3.无状态
    	不保存用户的信息
        eg:一个人来了一千次 你都记不住 每次都当他如初见
        由于HTTP协议是无状态的 所以后续出现了一些专门用来记录用户状态的技术
        	cookie、session、token...
    4.无/短链接
    	请求来一次我响应一次 之后我们两个就没有任何链接和关系了
    	长链接:双方建立连接之后默认不断开 websocket(后面讲项目的时候会讲)
    
            
    # 请求数据格式
    请求首行(标识HTTP协议版本,当前请求方式)
    请求头(一大堆k,v键值对)
    
     
    请求体(并不是所有的请求方式都有get没有post有 存放的是post请求提交的敏感数据)
    # 响应数据格式
    响应首行(标识HTTP协议版本,响应状态码)
    响应头(一大堆k,v键值对)
    
    响应体(返回给浏览器展示给用户看的数据)
    
    # 响应状态码
    用一串简单的数字来表示一些复杂的状态或者描述性信息  404:请求资源不存在
    1XX:服务端已经成功接收到了你的数据正在处理,你可以继续提交额外的数据
    2XX:服务端成功响应了你想要的数据(200 OK请求成功)
    3XX:重定向(当你在访问一个需要登陆之后才能看的页面 你会发现会自动跳转到登陆页面)
    4XX:请求错误
        404:请求资源不存在
        403:当前请求不合法或者不符合访问资源的条件
    5XX:服务器内部错误(500)
      
    
    # 请求方式
    1.get请求
        朝服务端要数据
        eg:输入网址获取对应的内容
    2.post请求
        朝服务端提交数据
        eg:用户登陆 输入用户名和密码之后 提交到服务端后端做身份校验
    
    # url:统一资源定位符(大白话 网址)
    

    HTML

    超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言。
    本质上是浏览器可识别的规则,我们按照规则写网页,浏览器根据规则渲染我们的网页。对于不同的浏览器,对同一个标签可能会有不同的解释。(兼容性问题)
    网页文件的扩展名:.html或.htm

    HTML就是书写网页的标准

    # 注释:注释是代码之母
    <!--单行注释-->
    <!--
    多行注释1
    多行注释2
    多行注释3
    -->
    由于HTML代码非常的杂乱无章并且很多,所以我们习惯性的用注释来划定区域方便后续的查找
    <!--导航条开始-->
    导航条所有的html代码
    <!--导航条结束-->
    <!--左侧菜单栏开始-->
    左侧菜单栏的HTMl代码
    <!--左侧菜单栏结束-->
    

    HTML文档结构

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <title>css样式优先级</title>
    </head>
    <body>
    
    </body>
    </html>
    
    
    1. <!DOCTYPE html>声明为HTML5文档。
    2. <html>、</html>是文档的开始标记和结束的标记。是HTML页面的根元素,在它们之间是文档的头部(head)和主体(body)。
    3. <head>、</head>定义了HTML文档的开头部分。它们之间的内容不会在浏览器的文档窗口显示。包含了文档的元(meta)数据。
    4. <title>、</title>定义了网页标题,在浏览器标题栏显示。
    5. <body>、</body>之间的文本是可见的网页主体内容。
    
    PS: 对于中文网页需要使用 <meta charset="utf-8"> 声明编码,否则会出现乱码。有些浏览器会设置 GBK 为默认编码,则你需要设置为 <meta charset="gbk">。
    

    HTML标签格式

    • HTML标签是由尖括号包围的关键字,如, <div>等
    • HTML标签通常是成对出现的,比如:<div>和</div>,第一个标签是开始,第二个标签是结束。结束标签会有斜线。
    • 也有一部分标签是单独呈现的,比如:<br/>、<hr/>、<img src="1.jpg" />等。
    • 标签里面可以有若干属性,也可以不带属性。

    标签的语法:

    • <标签名 属性1=“属性值1” 属性2=“属性值2”……>内容部分</标签名>
    • <标签名 属性1=“属性值1” 属性2=“属性值2”…… />

    几个很重要的属性:

    • id:定义标签的唯一ID,HTML文档树中唯一
    • class:为html元素定义一个或多个类名(classname)(CSS样式类名)
    • style:规定元素的行内样式(CSS样式)

    HTML注释

    • <!--注释内容-->

    HTML常用标签

    head内常用标签

    Meta标签

    Meta标签介绍:

    • <meta>元素可提供有关页面的元信息(mata-information),针对搜索引擎和更新频度的描述和关键词。
    • <meta>标签位于文档的头部,不包含任何内容。
    • <meta>提供的信息是用户不可见的。

    meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name 属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。

    1.http-equiv属性:相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变量值。

    <!--指定文档的编码类型(需要知道)-->
    <meta http-equiv="content-Type" charset=UTF8">  
    <!--2秒后跳转到对应的网址,注意引号(了解)-->
    <meta http-equiv="refresh" content="2;URL=https://www.oldboyedu.com">
    <!--告诉IE以最高级模式渲染文档(了解)-->
    <meta http-equiv="x-ua-compatible" content="IE=edge">
    

    2.name属性: 主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。

    <meta name="keywords" content="meta总结,html meta,meta属性,meta跳转">
    <meta name="description" content="老男孩教育Python学院">
    

    body内常用标签

    基本标签

    <b>加粗</b>
    <i>斜体</i>
    <u>下划线</u>
    <s>删除</s>
    
    <p>段落标签</p>
    
    <h1>标题1</h1>
    <h2>标题2</h2>
    <h3>标题3</h3>
    <h4>标题4</h4>
    <h5>标题5</h5>
    <h6>标题6</h6>
    
    <!--换行-->
    <br>
    
    <!--水平线--><hr>
    
    # 1 块儿级标签:独占一行
         h1~h6  p  div
    1.块儿级标签可以修改长宽 行内标签不可以 修改了也不会变化
    2.块儿级标签内部可以嵌套任意的块儿级标签和行内标签
        但是p标签虽然是块儿级标签 但是它只能嵌套行内标签 不能嵌套块儿级标签
        如果你套了 问题也不大 因为浏览器会自动帮你解开(浏览器是直接面向用户的 不会轻易的报错 哪怕有报错用户也基本感觉不出来)
           
    总结:
       只要是块儿级标签都可以嵌套任意的块儿级标签和行内标签
       但是p标签只能嵌套行内标签(HTML书写规范)
    # 2 行内标签:自身文本多大就占多大
         i u s b span
       行内标签不能嵌套块儿级标签 可以嵌套行内标签
    

    特殊字符

    &nbsp;  空格
    &gt;   大于号
    &lt;   小于号
    &amp;  &
    &yen;  ¥
    版权&copy; ©
    注册&reg; ®
    

    div标签和span标签

    div标签用来定义一个块级元素,并无实际的意义。主要通过CSS样式为其赋予不同的表现。
    span标签用来定义内联(行内)元素,并无实际的意义。主要通过CSS样式为其赋予不同的表现。
    
    ## 块级元素与行内元素的区别:
    所谓块元素,是以另起一行开始渲染的元素,行内元素则不需另起一行。如果单独在网页中插入这两个元素,不会对页面产生任何的影响。
    这两个元素是专门为定义CSS样式而生的。
    
    ## 注意:
    关于标签嵌套:通常块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。
    
    p标签不能包含块级标签,p标签也不能包含p标签。
    

    img标签

    # 图片标签
    <img src="" alt="">
    
    src	
    1.图片的路径  可以是本地的也可以是网上的
    2.url	自动朝该url发送get请求获取数据
    
    alt="这是我的前女友"
    当图片加载不出来的时候 给图片的描述性信息
    
    title="新垣结衣"
    当鼠标悬浮到图片上之后 自动展示的提示信息
    
    height="800px" 
    		
    width=""
    高度和宽度当你只修改一个的时候 另外一个参数会等比例缩放
    如果你修改了两个参数 并且没有考虑比例的问题 那么图片就会失真
    

    a标签

    # 链接标签
    <a href=""></a>
    """
    当a标签指定的网址从来没有被点击过 那么a标签的字体颜色是蓝色
    如果点击过了就会是紫色(浏览器给你记忆了)
    """
    
    href
    1.放url,用户点击就会跳转到该url页面
    2.放其他标签的id值 点击即可跳转到对应的标签位置
    
    target
    默认a标签是在当前页面完成跳转  _self
    你也可以修改为新建页面跳转		_blank
    
    # a标签的锚点功能
    """eg:点击一个文本标题 页面自动跳转到标题对应的内容区域"""
    <a href="" id="d1">顶部</a>
    <h1 id="d111">hello world</h1>
    <div style="height: 1000px;background-color: red"></div>
    <a href="" id="d2">中间</a>
    <div style="height: 1000px;background-color: greenyellow"></div>
    <a href="#d1">顶部</a>
    <a href="#d2">回到中间</a>
    <a href="#d111">回到hello world</a>
    

    列表

    1.无序列表

    <ul type="disc">
      <li>第一项</li>
      <li>第二项</li>
    </ul>
    
    type属性:
    disc(实心圆点,默认值)
    circle(空心圆圈)
    square(实心方块)
    none(无样式)
    

    2.有序列表

    <ol type="1" start="2">
      <li>第一项</li>
      <li>第二项</li>
    </ol>
    
    type属性:
    1 数字列表,默认值
    A 大写字母
    a 小写字母
    Ⅰ大写罗马
    ⅰ小写罗马
    

    3.标题列表

    <dl>
      <dt>标题1</dt>
      <dd>内容1</dd>
      <dt>标题2</dt>
      <dd>内容1</dd>
      <dd>内容2</dd>
    </dl>
    

    表格

    <table>
      <thead>
      <tr>
        <th>序号</th>
        <th>姓名</th>
        <th>爱好</th>
      </tr>
      </thead>
      <tbody>
      <tr>
        <td>1</td>
        <td>Egon</td>
        <td>杠娘</td>
      </tr>
      <tr>
        <td>2</td>
        <td>Yuan</td>
        <td>日天</td>
      </tr>
      </tbody>
    </table>
    
    ## 属性:
    border: 表格边框.
    cellpadding: 内边距
    cellspacing: 外边距.
     像素 百分比.(最好通过css来设置长宽)
    rowspan: 单元格竖跨多少行
    colspan: 单元格横跨多少列(即合并单元格)
    
    jason 123 read
    egon	123 dbj
    tank  123 hecha
    ...
    <table>
        <thead>
        	<tr>  一个tr就表示一行
                <th>username</th>  加粗文本
                <td>username</td>  正常文本
            </tr>
        </thead>  表头(字段信息)
        <tbody>
        	<tr>
                <td>jason</td>
                <td>123</td>
                <td>read</td>
            </tr>
        </tbody>	 表单(数据信息)
    </table>
    
    
    <table border="1">  加外边宽
    <td colspan="2">egon</td>  水平方向占多行
    <td rowspan="2">DBJ</td>   垂直方向占多行
    

    form

    表单用于向服务器传输数据,从而实现用户与Web服务器的交互
    表单能够包含input系列标签,比如文本字段、复选框、单选框、提交按钮等等。
    表单还可以包含textarea、select、fieldset和 label标签。

    """
    能够获取前端用户数据(用户输入的、用户选择、用户上传...)基于网络发送给后端服务器
    """
    <form action=""></form>  在该form标签内部书写的获取用户的数据都会被form标签提交到后端
    
    action:控制数据提交的后端路径(给哪个服务端提交数据)
      	1.什么都不写  默认就是朝当前页面所在的url提交数据
        2.写全路径:https://www.baidu.com  朝百度服务端提交
        3.只写路径后缀action='/index/'  
        	自动识别出当前服务端的ip和port拼接到前面
          host:port/index/
    
    # 能够触发form表单提交数据的按钮有哪些(一定要记住)
    1、<input type="submit" value="注册">
    2、<button>点我</button>
    

    input

    ## 属性说明:
    name:表单提交时的“键”,注意和id的区别
    value:表单提交时对应项的值
        type="button", "reset", "submit"时,为按钮上显示的文本年内容
        type="text","password","hidden"时,为输入框的初始值
        type="checkbox", "radio", "file",为输入相关联的值
    checked:radio和checkbox默认被选中的项
    readonly:text和password设置只读
    disabled:所有input均适用
    
    <label for="d1">  第一种 直接讲input框写在label内
        username:<input type="text" id="d1">
    </label>					
    第二种 通过id链接即可 无需嵌套
    <label for="d2">password:</label>
    <input type="text" id="d2">
    
    """
    label 和 input都是行内标签
    """
    input标签 就类似于前端的变形金刚  通过type属性变形
    text:普通文本
    password:密文
    date:日期	
    submit:用来触发form表单提交数据的动作
    button:就是一个普普通通的按钮 本身没有任何的功能 但是它是最有用的,学完js之后可以给它自定义各种功能
    reset:重置内容
    radio:单选
      默认选中要加checked='checked'
      <input type="radio" name="gender" checked='checked'>男
      当标签的属性名和属性值一样的时候可以简写
      <input type="radio" name="gender" checked>女
    checkbox:多选
    		<input type="checkbox" checked>DBJ
      
    file:获取文件  也可以一次性获取多个
    	<input type="file" multiple>
    hidden:隐藏当前input框
    
    textarea标签  获取大段文本
    	  <textarea name="" id="" cols="30" rows="10"></textarea>
    
    # 所有获取用户输入的标签 都应该有name属性
    name就类似于字典的key
    用户的数据就类似于字典的value
    <p>gender:
        <input type="radio" name="gender">男
        <input type="radio" name="gender">女
        <input type="radio" name="gender">其他
    </p>
    

    select标签

    select标签 默认是单选 可以加mutiple参数变多选 默认选中selected
    <form action="" method="post">
      <select name="city" id="city">
        <option value="1">北京</option>
        <option selected="selected" value="2">上海</option>
        <option value="3">广州</option>
        <option value="4">深圳</option>
      </select>
    </form>
    
    属性说明:
    multiple:布尔属性,设置后为多选,否则默认单选
    disabled:禁用
    selected:默认选中该项
    value:定义提交时的选项值
    
  • 相关阅读:
    【转载】python自动提取文本中的时间(包含中文日期)
    【转载】PCA降维
    【转载】从头到尾彻底理解KMP算法
    【转载】傅里叶分析之掐死教程(完整版)更新于2014.06.06(Heinrich)
    【转载】白素贞的身世之谜
    React 路由参数改变页面不刷新问题
    前端学习资源笔记
    Nginx配置网站默认https
    基于Docker搭建大数据集群(一)Docker环境部署
    基于Docker搭建大数据集群(三)Hadoop部署
  • 原文地址:https://www.cnblogs.com/chenwenyin/p/12869121.html
Copyright © 2011-2022 走看看