前端HTML

前端HTML

一、前端与后端的概念

前端:任何与用户直接打交道的操作界面,都可以称为前端  --->> 接待员
后端:不直接与用户打交道,主要负责内部真正的业务垃圾的执行  ---->>  幕后操作者
前端三剑客:
 HTML    网页的骨架
 CSS     网页的样式
 JS      网页的动态

二、前端的前戏

1.编写服务端
2.浏览器充当客户端访问服务端
3.浏览器无法正常展示服务端内容(因为服务端的数据没有遵循标准)
4.HTTP协议>>>:最主要的内容就是规定了浏览器与服务端之间数据交互的格式
import socket

server = socket.socket()
server.bind(('127.0.0.1',8080))
server.listen(5)

while True:
    conn,address = server.accept()
    data = conn.recv(1024)
    print(data)
    # conn.send(b'hello')
    conn.send(b'HTTP/1.1 200 ok\r\n\r\n')
    with open(r'a.txt','rb') as f:
        conn.send(f.read())

image

三、http协议

1.四大特性

1.基于请求响应
  客户端请求,服务端响应
2.基于TCP,TP作用于应用层之上的协议
  该协议属于应用层
3.无状态
  服务端不会保存客户端的状态
   例如:纵使见她千百遍 我都当她如初见
4.无/短连接
  客户端与服务端不会长久保持连接

2.超文本传输协议的简介

HTTP协议(Hyper Text Transfer Protocol,超文本传输协议,即传输文字、图片、音频、视频等超 文本数据)是一种用于分布式、协作式和超媒体信息系统的应用层协议。为了更快地处理大量事务,确保协议 的可伸缩性,HTTP协议被设计成了一种无状态协议,不保留之前一切的请求或响应报文的信息。HTTP协议也是 万维网(WWW,World Wide Web)的数据通信的基础

3.数据格式

请求数据格式:
1.请求首行(请求方式有很多种,请求首行包含协议名称以及版本)
2.请求头(一大堆的k:v键值对)
3.换行
4.请求体(携带一些敏感的数据,不是所有的请求都有请求体)
响应数据格式:
1.响应首行(响应状态码)
2.响应头(一大堆的k:v键值对)
3.换行
4.响应体(一般情况下就是浏览器就是想要展示给用户看的数据)

4.响应状态码

用一些数字表示一些复杂的情况说明
1xx:服务端已经收到了您的请求正在处理,客户端继续发送或者等待
2xx:200 OK 服务端给出来相应响应
3xx:重定向(想访问A网页但是转向了B网页) 302(临时)  304(永久)
4xx:403(访问权限不够) 404(请求资源不存在)
5xx:服务端内部错误
    在公司内自定义的响应状态码,通常以10000起步

5.补充知识

1.http协议中并没有规定必须使用TCP/IP或其支持的层
HTTP协议中并没有规定必须使用TCP/IP或其支持的层。事实上,HTTP可以在任何互联网协议上,或其他网络上实现。HTTP假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用。因此也就是其在TCP/IP协议族使用TCP作为其传输层。因为UDP是不可靠传输,所以上面那句话提到“HTTP使用的是TCP/IP协议,而非UDP”。

2.HTTP协议工作原理
通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及响应请求而返回的内容,如文件、错误消息、或者其它信息。
HTTP协议工作流程:
    1.建立TCP/IP连接,客户端与服务器通过Socket三次握手进行连接。
    2.客户端向服务端发起HTTP请求(即请求行?例如:POST/login.html http/1.1)。
    3.客户端发送请求头部、请求内容,最后会发送一换行,标示客户端请求完毕。
    4.服务器做出应答,表示对于客户端请求的应答(即状态行?例如:HTTP/1.1 200 OK)。
    5.服务器向客户端发送响应头部信息,发送一换行,表示应答头信息发送完毕。随后以Content-type要求的数据格式,发送响应正文给客户端。
    6.服务端关闭TCP连接,如果服务器或者客户端的Connection:keep-alive,则客户端与服务器端继续保存连接,在下次请求时可以继续使用这次的连接。
      
3.一次HTTP请求的完整过程
    1.浏览器根据域名解析IP地址
    2.浏览器通过IP地址与WEB服务器建立一个TCP连接
    3.浏览器给WEB服务器发送一个HTTP请求
    4.服务器端响应HTTP请求,浏览器得到服务器响应的内5.容,比如HTML页面代码
    6.浏览器解析HTML代码,并请求HTML代码中的资源
    7.关闭该TCP连接,浏览器对页面进行渲染呈现给用户

四、HTML简介

1.HTML简介

HTML的全称是超文本标记语言,是一种标记语言
浏览器所展示的界面我们也称HTML页面,存储HTML语言的文件后缀名一般是.html
特点:
1.简易性
2.可扩展性
3.平台无关性
4.通用性

2.HTML注释语法

<!--注释内容-->

3.HTML文件结构

<!DOCTYPE html>   # 声明是html文件
<html lang="en">   # html语言,支持中文的
<head>              # 主要放与浏览器交互的配置
    <meta charset="UTF-8">
    <title>Title</title>    # 在浏览器的标签栏页展示的标题
</head>
<body>                        # 浏览器展示给用户看的内容

</body>
</html>

4.HTML标签的分类

1.单标签(自闭和标签)
  eg:
    <img/>  <span/>
2.双标签
<h1></h1>
注意:
    双标签一定要结束
    标签不能交叉嵌套
    属性必须有值,属性值必须加引号
    注释不能嵌套

5.head内常见标签

1.title 网页小标题
2.meta 定义网页源信息
<meta name= 'keywords' content='查询关键字'/>
<meta name='description' content='网页简介'/>
3.style里面支持写css代码
4.link引入外部css文件
5.script支持内部编写js代码也可以引入外部js文件

6.body内基本标签

1.标题系列
 <h1></h1>~<h6></h6>     简易写法  h$*6
2.段落标签
<p></p>
3.其他标签
<u/> 下划线
<i/> 斜体
<s/> 删除线
<b/> 加粗
4.换行与分割线
<br/>  换行
<hr/>  分割线
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>一级标题</h1>
    <h2>二级标题</h2>
    <h3>三级标题</h3>
    <h4>四级标题</h4>
    <h5>五级标题</h5>
    <h6>六级标题</h6>
    <u>下划线</u>
    <i>斜体</i>
    <s>删除线</s>
    <b>加粗</b>
</body>
</html>

7.块级标签与行内标签

1.块级标签
h1~h6 ,p,span,hr,br
一个标签独占一行,在网页通过块元素对元素进行布局
2.行内标签
u,i,s,b
内部文本多大自身就占多大
# 标签嵌套:通常块级元素可以包含行内元素或者某些块级元素,但是行内元素只能包含其他行内元素

8.body内基本符号(特殊符号)

内容 对应代码
空格 &nbsp(写的时候后面加;号)
大于 &gt
小于 &lt
& &amp
&yen
版权© &copy
注册® &reg

9.body内常用标签

1.默认属性
    标签自带的 编写的时候有自动提示
2.自定义属性
    用户自定义 编写不会有提示甚至会飘颜色
1.a标签:链接标签
2.href:
    填写网址 ---->> 具备跳转功能
    href = 'url'
    填写其他标签的id值 ---->> 具备描点功能
    href = '#id'
3.target
  默认_self原网页跳转
  _blank新建网页跳转
4.img标签
  src 填写图片地址
  title 鼠标悬浮在图片上展示的文本
  alt  图片加载失败提示的信息
  width\height 图片尺寸,两者调整一个即可

10.标签两大重要属性

id和class两个属性都是用来快速定位需要操作的标签
id属性(一对一管理):类似于身份证,在同一个html上,id不能重复
class属性(批量管理):类似于分组,多个标签可以拥有相同的class值

11.列表标签

1.无序列表
 <ul>
    <li></li>
 </ul>
# 页面上所有有光泽排列的横向或者竖向的数据,一般使用无序列表
type属性:
   disc:实心圆点,默认值
   circle:空心圆圈
   square:实心方块
   none:无样式
2.有序列表
<ol>
    <li></li>
    <li></li>
</ol>
type属性: 
    1:数字列表,默认值
    A:大写字母
    a:小写字母
    I:大写罗马
    i:小写罗马
3.标题列表
<dl>
    <dt>小标题1</dt>
        <dd>小标题2</dd>
        <dd>小标题2</dd>
    <dt>小标题1</dt>
        <dd>小标题2</dd>
        <dd>小标题2</dd>
</dl>

12、表格标签

<table border="1">
    <thead>
      <tr>
          <th>编号</th>
          <th>姓名</th>
          <th>年龄</th>
      </tr>
    </thead>
    <tbody>
     <tr>
         <td>1</td>
         <td>jia</td>
         <td>18</td>
     </tr>
     <tr>
         <td>2</td>
         <td>jason</td>
         <td>19</td>
     </tr>
    </tbody>
</table>
1.先写基本骨架
	<table>
        <thead></thead>
        <tbody></tbody>
    </table>
2.再写表头及表单数据
	 <tr>  一个tr标签就表示一行
        <th>编号</th>  th主要用于表头字段中 用来加粗显示
        <th>姓名</th>
        <th>年龄</th>
    </tr>
    
    <tr>
        <td>1</td>  td主要用于表达数据中 
        <td>jason</td>
        <td>18</td>
    </tr>
 

13.表单数据

获取用户的数据并发送给服务端
form标签
action 控制数据的提交地址
method 控制数据的提交方法

input标签
  type标签:
    txt   普通文本
    password  密文展示
    date    日期选项
    email    邮件选项
    radio    单选
    checkbox  多选
    file      文件
    submit    触发提交动作
    reset     重置表单内容
    button    暂无任何功能
    
    select标签  下拉框
    option    ---->>  一个个选项
    textarea  ---->> 获取大段文本
  input标签应该有name属性
	name属性相当于字典的键 input标签获取到的用户数据相当于字典的值
	点击发送就会组织成字典的形式发送给服务端 这样才具有明确意义
<form action="">
    <p>
        username:
        <input type="text">
    </p>
    <p>
        password:
        <input type="password">
    </p>
    <p>
        birthday:
        <input type="date">
    </p>
    <p>
        email:
        <input type="email">
    </p>
    <p>
        gender:
        <input type="radio" name="gender" value="male"> 男
        <input type="radio" name="gender" value="female"> 女
        <input type="radio" name="gender" value="other"> 其他
    </p>
    <p>
        hobbies:
        <input type="checkbox"> read
        <input type="checkbox"> dance
        <input type="checkbox"> sing
    </p>
    <p>
        file:
        <input type="file">
    </p>
    <p>
        files:
        <input type="file" multiple>
    </p>
    <p>
        province:
        <select name="" id="">
            <option value="">北京</option>
            <option value="">上海</option>
            <option value="">金华</option>
        </select>
    </p>
    <p>
        info:
        <textarea name="" id="" cols="20" rows="10"></textarea></p>
        <input type="submit" value="注册">
        <input type="reset" value="重置">
        <input type="button" value="按钮">

</form>

image

posted @ 2022-11-30 21:21  小王应该在学习!  阅读(75)  评论(0编辑  收藏  举报