一 前端基础,http协议,form表单

 一,web服务的本质:
浏览器中敲入网站回车发生的几件事?
1.游览器向服务端发送请求
2.服务端接受请求
3.服务端返回相应的响应
4.浏览器接受响应 根据特定的规则渲染页面展示给用户看

二: HTTP 协议

HTML是一种标记语言(markup language),它不是一种编程语言。
HTML使用标签来描述网页。

超文本传输协议
规定了浏览器与服务器之间消息传输的数据格式

四大特性:
1.基于请求响应
2.基于TCP/IP 之上的作用于应用层的协议
3.无状态(服务端无法保存用户的状态,一个人来一千次,都是和第一次一样,都是初恋
4.无连接(请求来一次响应一次,之后立马断开连接,两者之间就再无任何关系
websocket相当于http协议的一个大补丁,可以长连接

请求数据格式:
请求首行 (标识HTTP协议的版本,当前请求方式)
请求头 ( 一大堆的k,v键值对) 下面一行是固定句式的空格\r\n

请求体 (携带的是一些敏感信息,密码,身份证号等)

响应数据格式:
响应首行 (标识HTTP协议的版本,当前请求方式)
响应头 ( 一大堆的k,v键值对) 下面一行是固定句式的空格\r\n

响应体 (返回给浏览器页面的数据 通常响应响应体都是HTML页面)
响应状态码 (我的理解:就是响应之后的结果,用某个数字表示结果的状态)
用一串简单的数字来表示一些复杂的状态或者提示信息
1XX:服务端已经成功接收浏览器发来的数据,正在处理
2XX: 服务端成功响应 你所要的数据,请求成功 例如:200
3XX: 重定向(当你在访问一个需要登录之后才能访问的页面,窗口会自动调到登录页面,例如301 302
4XX: 请求错误(当你请求的数据不存在404,请求不合法或者权限不够时就是403
5XX: 服务器内部错误

请求方式:
1.get请求
向服务端要资源(比如浏览器窗口输入www.baidu.com)# 就是从服务端获取你要的数据
2,post请求
向服务端提交数据(比如密码,用户登录,提交用户名等等)
URL:统一资源定位符(大白话 就是网址)


三: HTML 超文本标记语言 注意是一种标记语言,不是编程语言
要想让你的页面能够正常的被浏览器显示出来,你就必须遵循html标记语法
也就是说,所有能够被浏览器显示出来的页面, 内部都是HTML代码

浏览器只认识 html css js
web 本质
浏览器
服务器
文件(后缀名是.html或者htm 结尾的文件,也就意味着,只要看到.html结尾的文件,他都是一个前端页面文件
#文件的后缀名仅仅是给人看的 计算机无所谓 因为都是二进制数据

HTML 注释
写网页的一套标准

注释是代码之母
<!--单行注释--> ctrl+/
<!--
多行注释
多行注释
-->
一般情况下 html的注释都会按照下面的方式书写
<!--导航条样式开始--> # 大白话说导航就是快速查找的作用

<!--导航条样式结束-->

HTML文档结构
<html>
<head></head>:head内的标签 不是用来展示给用户看的 而是定义一些配置 主要是给浏览器看的
<body></body>:body内的标签 就是浏览器展示给用户看的内容
</html>

打开html页面的两种方式
1.找到文件路径 选择浏览器打开
2.pycharm快捷方式直接打开

标签的分类一:
1,双标签 (<h1></h1> <a></a>)
2,单标签(自闭和标签 <img/>)

head内常用标签
title 标题标签, 用来显示网页标题
style用来控制样式 内部支持写css代码
script内部支持写js代码, 也支持导入外界的js文件
link 专门用来引入外部的css文件

标签的分类2
1.块儿级标签(独占浏览器一行)
div 结构框架标签
p 段落标签
h 标题标签

1,块儿级标签可以修改长宽, 修改长度等比例缩放,一般只修改长
2,块儿级标签内部可以嵌套任意的块级标签,
但是p标签虽然是块级标签,但是内部不能嵌套 块儿级标签 包括自身也不能
但是可以嵌套行内标签
总结:就是只要是块儿级标签,都可以嵌套行内标签,p标签只能嵌套行内标签,
其他块儿级标签可以嵌套任意块儿级标签
即:p标签不能包含块级标签,p标签也不能包含p标签。*******************

2,行内标签:(自身文本多大就占多大)
span b加粗标签 i 斜体标签 u 下划线标签 s 删除标签

3,div和span通常都是用来构建网页布局的
div标签和span标签
div标签用来定义一个块级元素,并无实际的意义。主要通过CSS样式为其赋予不同的表现。
span标签用来定义内联(行内)元素,并无实际的意义。主要通过CSS样式为其赋予不同的表现。



Meta标签介绍:
<meta>元素可提供有关页面的元信息(mata-information),针对搜索引擎和更新频度的描述和关键词。
<meta>标签位于文档的头部,不包含任何内容。
<meta>提供的信息是用户不可见的。
案例:
<!--告诉IE以最高级模式渲染文档(了解)-->
<meta http-equiv="x-ua-compatible" content="IE=edge">

案列:
<meta name="keywords" content="meta总结,html meta,meta属性,meta跳转">
注:开发网页时用的较多, 此时content关键字后面跟的是 用户输入有关内容的关键,
只要用户输入你所在这里有的内容关键字,浏览器就会把与之相关的内容响应给用户
<meta name="description" content="老男孩教育Python学院">
注:开发网页时,此时content= 后跟的是此网页的简介,也就是说明书,说明此网页内容是什么

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>

特殊字符:**********
空格 &nbsp;
> &gt;
< &lt;
& &amp;
¥ &yen;
版权 &copy;
注册 &reg;


img 标签:
src存放的是图片的路径(该路径可以是本地的也可以是网上的)
1.也可以放url(会自动请求该url获取相应数据)
2.也可以直接放图片的二进制数据 会自动转换成图片

alt当图片加载不出来的时候 显示的提示信息

title当鼠标悬浮在图片上 提示的信息

height,width 当你只指定一个参数的时候 另外一个会等比例缩放

a 超链接标签:
href后面存放url的时候 点击跳转到该url
如果该链接没有被点过 那么默认是蓝色,只要点过依次 之后都是紫色

target 默认是_self当前页面跳转
_blank新建页面跳转

锚点功能(回到顶部)
href还可以写另一个a标签的id值,点击就会跳到id值所对应的a标签

每一个标签都应该有三个比较重要的属性
1.id值 该值就类似于人的身份证号 在用一个html文档id应该保证唯一不重复
2.class值 该值就类似于面向对象里面的继承 可以写多个
3.style(不是必备) 支持在标签内直接写css代码 属于行内样式 优先级最高
补充 任何标签都支持自定义属性!!!

列表标签***************
<table>
<thead></thead>
<tbody></tbody>
</table>

tr表示一行
th和td都是文本
建议在thead内用th 因为加粗的
tbody内用td
th显示出来的结果字体比td粗

colspan表示的水平方向
rowspan表示的竖直方向


表单标签(******)
能够接收用户输入(输入 选择 上传)并将其发送给后端
能够将图片,文字,,选择按钮等,一块打包统一发送给后端服务器

action:能够控制数据提交的目的地
(是向阿里,新浪,谷歌等等提交)
1,不写的情况下,默认提交到当前页面所在的路径(即当前浏览器网站)
2,写全路径(https://www.baidu.com)
3,路径后缀(/index/)

input input标签就类似于是前端变形金刚
type
text:普通文本
password:密文 不展示明文
date:日期
submit:触发提交动作
button:普通按钮 没有实际意义 但是可以通过js绑定事件实现自定义动作
reset:重置表单内容
radio:单选 可以通过checked控制默认选择(当属性值和属性名相同的情况下 可以简写 checked) checked="checked"
checkbox:多选 同上 可以设置默认值
file:获取用户上传的文件


select标签
默认是单选 可以通过multiple变成多选
如果想默认选择 用selected (selected="selected")

textarea标签
获取用户输入的大段文本



form表单默认是get请求 你需要通过method参数 换成post提交
form表单中 要想触发提交动作
只有两种情况可以
1.input标签type指定成submit
2.直接写button标签

获取用户输入(输入 选择 上传...)的标签 都必须有一个name属性
这个name属性就类似于字典的key,而标签获取到的用户写入的值就类似于字典的value



<input type="text" id="d1" name="username" value="默认值">
name就相当于是字典的key
value就是字典的值
获取都的用户输入都会被放入value属性中


form表单传文件的时候 需要指定enctype参数

from表单:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>注册页面</h2>
<form action="">
<!--此时显示效果在一行,要想使分行显示就用p标签包一下-->
<!--<label for="">username:<input type="text"></label>-->
<!--<label for="">password:<input type="text"></label>-->
<!--分行显示就用p标签包一下-->
<!--<p><label for="">username:<input type="text"></label></p>-->
<!--<p><label for="">password:<input type="text"></label></p>-->
<!--当鼠标在username或者password上面点击时,游标会自动在对应的框内等待输入,
这时就增加个id就可以了,id要唯一不能有重复的,第一种写法-->
<p><label for="d1">username:<input type="text" id="d1"></label></p>
<p><label for="d2">password:<input type="password" id="d2"></label></p>
<!--disabled禁用,即密码这个框动不了-->
<p><label for="d2">password:<input type="password" id="d4" disabled></label></p>
<!--第二中写法,-->
<p>
<label for="d3">生日</label>
<input type="date" id="d3">
</p>
<p>性别:
<!--type="radio" radio表示单选 选择性别,显示出来是一个原点-->
<!--当两个name="gender"都一样时就会只能二选一-->
<!--checked="checked"默认值,就是默认为男,如果标签名和标签值相等的话,可简写成checked-->
<input type="radio" name="gender" checked="checked">男
<input type="radio" name="gender">女
</p>
<p>
<input type="text" name="tank">将是
<input type="text" name="tank">会喜欢
</p>
<p>爱好:
<!--checkbox 默认多选,name可写可不写,如果是博彩网站,可以设为默认,还是用checked-->
<input type="checkbox" name="hobby">篮球
<input type="checkbox" name="hobby">足球
<input type="checkbox" name="hobby" checked>双色球
</p>
<p>省市:
<!--select标签,默认市单选,可以通过multiple变成多选-->
<!--如果要在此标签里多选,用selected (selected="selected")-->
<!--select 表示效果是下拉框选择 ,此时没有multiple就是单选-->
<select name="" id="">
<!--option 表示选项的意思-->
<option value="">上海市</option>
<option value="">北京市</option>
<option value="">深圳市</option>
</select>
</p>
<p>伴侣:
<!--multiple 表示可以选多个,选多个时按住ctrl键即可-->
<select name="" id="" multiple>
<option value="">向远介意</option>
<option value=""selected="selected">斯嘉丽</option>
<option value="">吉泽老师</option>
</select>
</p>
<p>省市1:
<!--直接选择区,前面默认市自动选择,不用选择市-->
<select name="" id="">
<optgroup label="上海市">
<option value="">静安区</option>
<option value="">浦东区</option>
<option value="">闵行区</option>
</optgroup>
<optgroup label="北京市">
<option value="">朝阳区</option>
<option value="">海淀区</option>
<option value="">昌平区</option>
</optgroup>
</select>

</p>
<p>头像:
<!--获取用户选择的文件,自己点击,自动选择好-->
<input type="file">
</p>
<p>个人简介:
<!--textarea 获取用户输入的大段文本-->
<textarea name="" id="" cols="30"
rows="10"></textarea>
</p>
<p>隐身:
<!--hidden隐身,把input框隐藏起来了-->
<input type="hidden">
</p>

<!-- input在p包起来时:这样注册,密码是明文
1,type="text" 表示普通文本,输入什么,显示的就是什么
type="password" 此时密码就变成了密文,password是自带规定用法
type="date" 此时生日就变成了日期格式,有客户直接选择,在不需要输入
-->

<!--input在外部时:
用type="submit" 此时显示的是提交按钮,单击此按钮,就会刷新提交一次-->
<!--<input type="submit">-->
<!--所有的input标签都有value值-->
<!--value="注册",value用来指定值 value后面可输入值,你输入什么,按钮上就是什么-->
<input type="submit" value="注册1">
<!--type="button" 表示就是一个普通的按钮,此时无任何作用,一般都是与js中合用-->
<input type="button" value="注册2">
<!--type="reset" 表示重置,清空了所有内容,不刷新,只是清空了输入的内容-->
<input type="reset" value="注册3">
<!--普通的button标签,产生的按钮,也和submit一样,是给后端提交任务,提交一次页面刷新一次,-->
<button>普通的button标签</button>
<!--防呆措施-->

</form>

</body>
</html>

猜你喜欢

转载自www.cnblogs.com/Fzhiyuan/p/11456641.html