html基础知识





HTTP相关知识补充

http知识概要

http协议补充:
    GET\POST请求方式差异:
        1、传送方式:get通过地址栏传输,post通过报文传输
        2、传送长度:get参数有长度限制(受限于url长度),而post无限制
        3、GET和POST还有一个重大区别,
            简单的说:
                GET产生一个TCP数据包;POST产生两个TCP数据包
            长的说:
                对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
                对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)
        4、建议:
            1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
            2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;

    URL格式:
        协议 /  域名  /  路径  /  参数
        https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=alex

    补充http协议:
                                请求协议
        浏览器 -----------------------------------------------> 服务器
               <-----------------------------------------------
                                响应协议

        https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=alex
        http之请求协议格式:
            第一种 GET方式
                GET   /s?a=1&b=2  HTTP/1.1           # 请求首行 (/s 是路径,问号以后的是参数数据)
                看 01 请求头.png                      # 请求头
                空行                                  # 空行
                None                                 # 请求体 (get请求没有请求体)

            第二种 POST方式
                POST   /s  HTTP/1.1        # 请求首行 (/s 是路径)
                看 01 请求头.png           # 请求头
                空行                       # 空行
                a=1&b=2                    # 请求体


        http之响应协议格式:
            HTTP/1.1 200 OK           # 响应首行
            看 01 响应头.png            # 响应头
            html页面字符串              # 响应体


    GET请求示例
    # 请求首行
    GET / HTTP/1.1

    # 请求头
    Host: 127.0.0.1:8899
    Connection: keep-alive
    Cache-Control: max-age=0
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36
    Upgrade-Insecure-Requests: 1
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.9

    # 空行
    \r\n

    # 请求体(无请求体)


    POST请求示例
    # 请求首行
    POST / HTTP/1.1

    # 请求头
    Host: 127.0.0.1:8899
    Connection: keep-alive
    Content-Length: 17
    Cache-Control: max-age=0
    Origin: http://localhost:63342
    Upgrade-Insecure-Requests: 1
    Content-Type: application/x-www-form-urlencoded
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
    Referer: http://localhost:63342/.html?_ijt=tg0k7v9jag2hm67q5ss7lan9ap
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

    # 空行
    \r\n

    # 请求体
    user=alnk&pwd=123


响应头


请求头


服务器返回数据


模拟服务器响应浏览器请求

package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func f1(w http.ResponseWriter, r *http.Request) {
	defer r.Body.Close()
	fmt.Println("客户端发送:", r)
	//fmt.Println("客户端发送:", r.FormValue("user"))
	//fmt.Println("客户端发送:", r.FormValue("pwd"))
	b, err := ioutil.ReadFile("./06jd.html")
	if err != nil {
		w.Write([]byte(fmt.Sprintf("%v\n", err)))
	}
	w.Write(b)
}

func main() {
	http.HandleFunc("/", f1)
	http.ListenAndServe(":8899", nil)
}


06jd.html

<a href="http://www.baidu.com">click</a>
<h1> welcome to </h1>
<img src="http://www.pptok.com/wp-content/uploads/2012/08/xunguang-4.jpg" />





HTML

概要

一、html标签格式:
    标签名:h1
    标签属性:href
    标签文本:tom
    <h1>tom</h1>       闭合标签
    <img src='href'>    自闭合标签


标签分为两类
    1 块级标签
        h1-h6标签,p标签,div标签
        特点
            独占一行
            可设置长宽

    2 内联标签
        b标签,strong标签,i标签,span标签,img标签,a标签,input标签
        特点
            只占文本内容
            不能设置长宽

块级标签可以嵌套块级标签和内联标签

内联标签只能嵌套内联标签

注意:P标签只能嵌套内联标签



html常见概念

<!-- 头部,声明使用html标准模式,记得加上防止掉坑 -->
<!-- 标准模式、怪异模式 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <!-- 头部信息 -->
    <!-- 编码 UTF-8,不然中文会乱码 -->
    <meta charset="UTF-8">
    <!-- 标题 -->
    <title>我是标题</title>
</head>

<body>
    <!-- 内容信息 -->
    <h1>我是内容</h1>
</body>
</html>


head常用标签

<!DOCTYPE html>
<html lang="en">
<head>
    <!-- 编码 -->
    <meta charset="UTF-8">

    <!-- 标题 -->
    <title>Title</title>

    <!-- 关键词 搜索使用 百度 竞价排名 -->
    <!-- 关键词 -->
    <meta name="keywords" content="IT培训">
    <!-- 描述 -->
    <meta name="" content="我是描述的内容">

    <!-- ICON -->
    <link rel="icon" href="//img11.360buyimg.com/jdphoto/s80x80_jfs/t27847/91/107794072/6854/14716732/5b850ecaN644d2983.png">

    <!-- 链接 CSS 代码 -->
    <link rel="stylesheet" href="css.css">

    <!-- 链接 js 代码 -->
    <script src="vue.js"></script>
</head>
<body>

</body>
</html>



body常用标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>常用标签学习</title>
</head>
<body>
    <!-- a标签锚功能 -->
    <div id="tips">我是一个锚点</div>

    <!-- hr标签:渲染一条红线-->
    <hr>

    <!-- h系列标签:标题标签 -->
    <h1>hello</h1>
    <h2>hello</h2>
    <h3>hello</h3>
    <h4>hello</h4>
    <h5>hello</h5>
    <h6>hello</h6>
    <hr>

    <h3>咏鹅</h3>
    鹅鹅鹅,
    曲项向天歌。
    白毛浮绿水,
    红掌拨青波。
    <hr>

    <!-- p标签:段落文本标签 -->
    <h3>咏鹅</h3>
    <p>鹅鹅鹅,</p>
    <p>曲项向天歌。</p>
    <p>白毛浮绿水,</p>
    <p>红掌拨青波。</p>
    <hr>

    <!-- br标签:换行标签-->
    <h3>咏鹅</h3>
    鹅鹅鹅,<br>
    曲项向天歌。<br>
    白毛浮绿水,<br>
    红掌拨青波。<br>
    <hr>

    <!-- b标签:变粗 -->
    <b>tom</b>
    <!-- strong标签:变粗,这个常用 -->
    <strong>tom</strong>
    <!--i标签:斜体-->
    <!--em标签:斜体-->
    <i>tom</i>
    <em>tom</em>
    <!--u标签:下划线-->
    <u>tom</u>
    <br>

    <!--strike标签:中横线标签-->
    <strike>100$</strike> 9.9$

    <!-- 特殊符号 -->
    <div>空&nbsp;&nbsp;&nbsp;格</div>
    <div>&lt;</div>
    <div>&gt;</div>
    <hr>

    <!--
    img标签,属性
    src: 要显示图片的路径
    alt: 图片没有加载成功时的提示
    title: 鼠标悬浮时的提示信息
    width: 图片的宽
    height:图片的高 (宽高两个属性只用一个会自动等比缩放.)
    -->
    <img width=300px
         height="200"
         src="http://www.pptbz.com/pptpic/UploadFiles_6909/201203/2012031220134655.jpg"
         alt="风景图片"
         title="风景"
    >
    <hr>

    <!--
    a标签:超链接
    href属性指定目标网页地址。该地址可以有几种类型:
        绝对 URL - 指向另一个站点(比如 href="http://www.jd.com)
        相对 URL - 指当前站点中确切的路径(href="index.htm")
        锚 URL - 指向页面中的锚(href="#top")
    -->
    <a href="http://www.baidu.com">click</a>
    <a href="http://www.baidu.com" target="_blank">打开新窗口</a>

    <!-- 锚 -->
    <a href="#tips">锚</a>
    <hr>

    <!--
        列表标签
        <ul>: 无序列表  (最常用)
            [type属性:disc(实心圆点)(默认)、circle(空心圆圈)、square(实心方块)]
            <li>:列表中的每一项

        <ol>: 有序列表
             <li>:列表中的每一项

        <dl>  定义列表
             <dt> 列表标题
             <dd> 列表项
    -->
    <ul type="disc">
        <li>alex</li>
        <li>egon</li>
        <li>wu</li>
    </ul>

    <ol start="50">
        <li>alex</li>
        <li>egon</li>
        <li>wu</li>
    </ol>

    <dl>
        <dt>广东省</dt>
        <dd>广州</dd>
        <dd>深圳</dd>
        <dd>惠州</dd>
    </dl>
    <hr>

</body>
</html>



body常用标签-表格标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <!--
    table表格标签
        <thead> 表头
        <tr>: table row 行
            <th>: table head cell 表头数据
        <tbody> 表格内容
        <tr>: table row 行
            <td>: table data cell 表格数据
    属性:
        border: 表格边框.
        cellpadding: 内边距
        cellspacing: 外边距.
        width: 像素 百分比.(最好通过css来设置长宽)
        rowspan:  单元格竖跨多少行(即合并单元格)竖向合并
        colspan:  单元格横跨多少列(即合并单元格)横向合并
    -->
    <table border="1px" cellspacing="0">
        <thead>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>张山</td>
                <td>23</td>
                <td>男</td>
            </tr>

            <tr>
                <td>李四</td>
                <td>23</td>
                <td>男</td>
            </tr>

            <tr>
                <td>王武</td>
                <td>23</td>
                <td>男</td>
            </tr>
        </tbody>
    </table>
    <hr>

    <!--合并单元格-->
    <table border="1px">
        <thead>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>张山</td>
                <td colspan="2">23 男</td>
            </tr>
        
            <tr>
                <td>李四</td>
                <td>23</td>
                <td rowspan="2">男</td>
            </tr>
            
            <tr>
                <td>王武</td>
                <td>23</td>
            </tr>
        </tbody>
    </table>
</body>
</html>



表格标签练习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<table border="1" bordercolor="red" cellspacing="0">
    <thead>
        <tr>
            <caption>课程表</caption>
            <th>项目</th>
            <th colspan="5">上课</th>
            <th colspan="2">休息</th>
        </tr>
        <tr>
            <th>星期</th>
            <th>星期一</th>
            <th>星期二</th>
            <th>星期三</th>
            <th>星期四</th>
            <th>星期五</th>
            <th>星期六</th>
            <th>星期日</th>
        </tr>
    </thead>

    <tbody>
        <tr>
            <td rowspan="4">上午</td>
            <td>语文</td>
            <td>数学</td>
            <td>数学</td>
            <td>数学</td>
            <td>数学</td>
            <td>计算机</td>
            <td>休息</td>
        </tr>
        
        <tr>
            <td>语文</td>
            <td>数学</td>
            <td>数学</td>
            <td>数学</td>
            <td>数学</td>
            <td>计算机</td>
            <td>休息</td>
        </tr>
        
        <tr>
            <td>语文</td>
            <td>数学</td>
            <td>数学</td>
            <td>数学</td>
            <td>数学</td>
            <td>计算机</td>
            <td>休息</td>
        </tr>
        
        <tr>
            <td>语文</td>
            <td>数学</td>
            <td>数学</td>
            <td>数学</td>
            <td>数学</td>
            <td>计算机</td>
            <td>休息</td>
        </tr>
        
        <tr>
            <td rowspan="2">下午</td>
            <td>语文</td>
            <td>数学</td>
            <td>数学</td>
            <td>数学</td>
            <td>数学</td>
            <td>计算机</td>
            <td>休息</td>
        </tr>
        
        <tr>
            <td>语文</td>
            <td>数学</td>
            <td>数学</td>
            <td>数学</td>
            <td>数学</td>
            <td>计算机</td>
            <td>休息</td>
        </tr>
    </tbody>
</table>
<hr>

</body>
</html>



form表单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="http://127.0.0.1:8899" method="post">
    <!-- value 默认值 -->
    <p>姓名:<input type="text" name="user" value="alnk"></p>

    <p>
        <lable for="111">姓名:</lable>
        <!-- placeholder 提示语 -->
        <input type="text" name="user" placeholder="请输入姓名" id="111">
    </p>

    <!-- required 必须填写字段 -->
    <p>密码:<input type="password" name="pwd" placeholder="请输入密码" required="required"></p>

    <p>爱好:
        <!-- 多选框 -->
        <!-- checked="checked" 默认选中 -->
        篮球<input checked="checked" type="checkbox" name="hobby" value="lanqiu">
        足球<input type="checkbox" name="hobby" value="zuqiu">
        双色球<input type="checkbox" name="hobby" value="shuangseqiu">
    </p>

    <p>性别:
        <!-- 互斥框 -->
        男<input type="radio" name="sex" value="male">
        女<input type="radio" name="sex" value="female">
    </p>

    <!-- 重置按钮 -->
    <p><input type="reset"></p>

    <!-- 上传文件按钮 -->
    <p><input type="file"></p>

    <!-- 隐藏标签,用途:浏览器偷偷的给服务器发送一些信息,用户无感知,页面无显示 例如token等 -->
    <p><input type="hidden" name="token" value="asufqr123sdafa53"></p>

    <!-- 配合js使用,和div有点相似 -->
    <p><input type="button" value="按钮" onclick="alert(123)"></p>

    <!-- 文本框 -->
    <p>个人简介<br>
        <textarea name="jieshao" cols="30" rows="10" maxlength="5"></textarea>
    </p>

    <!-- 下拉框 -->
    <!-- selected="selected" 默认选中 -->
    <select name="pro" size="3" multiple="multiple">
        <option value="heibei">河北省</option>
        <option selected="selected" value="hunansheng">湖南省</option>
        <option selected value="hubeishegn">湖北省</option>
    </select>

    <!-- 提交,会触发一个事件 -->
    <p><input type="submit" ></p>
</form>
</body>
</html>



form表单与web服务器交互练习

客户端

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>标题</title>
</head>
<body>
    <form action="http://127.0.0.1:8899" method="post">
        <p>账号: <input type="text" name="user"></p>
        <p>密码: <input type="password" name="pwd"></p>
        <p> <input type="submit"></p>
    </form>
</body>
</html>


服务端

package main

import (
	"fmt"
// 	"io/ioutil"
	"net/http"
)

func f1(w http.ResponseWriter, r *http.Request) {
	defer r.Body.Close()
	fmt.Println("客户端发送:", r)
	fmt.Println("客户端发送:", r.FormValue("user"))
	fmt.Println("客户端发送:", r.FormValue("pwd"))
// 	b, err := ioutil.ReadFile("./06jd.html")
// 	if err != nil {
// 		w.Write([]byte(fmt.Sprintf("%v\n", err)))
// 	}
// 	w.Write(b)
}

func main() {
	http.HandleFunc("/", f1)
	http.ListenAndServe(":8899", nil)
}

// 服务端运行方式
// go run main.go


客户端请求


服务端结果

客户端发送: &{POST / HTTP/1.1 1 1 map[Accept:[text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9] Accept-Encoding:[gzip, te, br] Accept-Language:[zh-CN,zh;q=0.9] Cache-Control:[max-age=0] Connection:[keep-alive] Content-Length:[17] Content-Type:[application/x-www-form-urlencoded] Origin:[http://localhost:63342] Referer:[http://localhost:63342/] Sec-Ch-Ua:[" Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"] Sec-Ch-Ua-Mobile:[?0] Sec-Fetch-Dest:[document] Sec-Fetch-Mode:[navigate] Sec-Fetch-Site:[cross-site] Sec-Fetch-User:[?1] Upgrade-Insecure-Requests:[1] User-Agent:[Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36]] 0xc0000ce440 <nil> 17 [] false 127.0.0.1:8899 map[] map[] <nil> map[] 127.0.0.1:50084 / <nil> <nil> <nil> 0xc0000ce480}
客户端发送: alnk
客户端发送: 123



html常见布局

<!DOCTYPE html>
<html>
<head> 
    <meta charset="utf-8"> 
    <title>HTML常见布局</title> 
</head>
<body>
    <div id="container" style="width:500px;margin:0px;" >
        <!-- 标题 -->
        <div id="header" style="background-color:#FFA500;">
            <h1 style="margin-bottom:0;">主要的网页标题</h1>
        </div>
        
        <!-- 侧边栏 -->
        <div id="menu" style="background-color:#FFD700;height:200px;width:100px;float:left;">
            <b>菜单</b><br>
            HTML<br>
            CSS<br>
            JavaScript
        </div>
        
        <!-- 内容 -->
        <div id="content" style="background-color:#EEEEEE;height:200px;width:400px;float:left;">
            内容在这里
        </div>
        
        <!-- 底部 -->
        <div id="footer" style="background-color:#FFA500;clear:both;text-align:center;">
            版权
        </div>
    </div>
</body>
</html>


posted @ 2021-04-27 16:50  李成果  阅读(251)  评论(0编辑  收藏  举报