前端

前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页,简单的来说就是与用户进行交互的界面就是前端。

前端的技术有很多,比如HTML、CSS、JavaScript、JQuery等等,但是如果作为一个后端开发工程师,那么前端只需要学习HTML、CSS、JavaScript这三个技术即可,这三个是前端开发中最基本也是最必须的三个技能。

前端的开发中,在页面的布局时, HTML将元素进行定义,CSS对展示的元素进行定位和装饰,再通过JavaScript实现相应的效果和交互。总的来说HTML是网页的骨架,CSS是网页的样式,JavaScript是网页的动态效果。

HTTP协议

简介

如果我们写了一个TCP服务端的代码,直接让服务端去给浏览器发送数据,浏览器是无法识别服务端发送过来的数据的,并且不同服务端数据的组织策略都是不一样的,比如python和java的数据类型书写是不一样的,所以这个时候就需要浏览器去做一个统一的处理,这个处理方案就是统一规定一个标准,即HTTP协议,它规定了服务端与浏览器之间的数据交互格式及其他事项。

HTTP协议全称超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。

四大特性

  1. 基于请求响应

    服务端永远不会主动给客户端发消息,必须是客户端先请求服务端被动响应。

  2. 基于TCP/IP作用于应用层之上的协议

  3. 无状态

    服务端不保存客户端状态,每次请求都像是第一次请求。

  4. 短连接

    不保持客户端与服务端之间的链接导通,请求一次响应一次,之后断开连接。

数据格式

请求格式:客户端给服务端发送消息应该遵循的数据格式

  1. 请求首行:主要是请求的方法和协议版本
  2. 请求头:一大堆k:v键值对
  3. 换行(不能省略)
  4. 请求体:携带敏感数据,如密码、身份证号等

响应格式:服务端给客户端发送消息应该遵循的数据格式

  1. 响应首行:响应状态码与协议版本
  2. 响应头:一大堆k:v键值对
  3. 换行(不能省略)
  4. 响应体:给浏览器展示给用户看的页面数据

响应状态码

响应状态码由3位数字组成,不同数字代表不同的意思。

1开头的数字(1XX):服务端成功接收到了你的数据正在处理,你可以等待或者继续发送

100 Continue  描述:服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。

2开头的数字(2XX):表示请求成功,服务端给出了响应

200 OK  描述:请求成功

3开头的数字(3XX):表示重定向(想访问A页面但是自动跳转到了B页面)

301 Moved Permanently  描述:所请求的页面已经转移至新的url。

4开头的数字(4XX):客户端错误

404 Not Found  描述:服务器无法找到被请求的页面。

5开头的数字(5XX):服务端错误

502 Bad Gateway  描述:请求未完成。服务器从上游服务器收到一个无效的响应。

状态码也可以自己定义,可以给前端人员做提示用。

HTML简介

HTML的全称为超文本标记语言,它包括一系列标签,通过添加或更改标签可以对网页内容进行修改,所有的网页都是由HTML组成,是网页的骨架。

存放HTML代码的文件后缀名一般都是.html,像我们对网页右键—》另存为,保存的格式都是.html的后缀。

HTML文件结构

<html>
<head>
<!--给浏览器看的数据-->
</head>
<body>
<!--给用户看的数据-->
</body>
</html>

HTML标签的分类

1.双标签:有头有尾,内容写在中间

<html>内容</html>
<head>内容</head>
<h1>内容</h1>

2.单标签:自闭合标签

<img />
<br />

HTML注释语法

单行注释

<!--单行注释-->

多行注释

<!--
多行注释
多行注释
-->

head内常见标签

一般的网页中head都会有如下标签

<head>
<meta />
<title>Title</title>
<link />
<style></style>
<script></script>
</head>
标签 意义
<title></title> 定义网页标题
<style></style> 定义内部样式表
<script></script> 定义JS代码或引入外部JS文件
<link/> 引入外部样式表文件
<meta/> 定义网页原信息

其中meta标签的功能非常多,比如在使用可以专门编写html文件的工具中,你创建的html中的meta标签大部分都是这样:<meta charset="UTF-8">,这个规定了网页的编码,防止出现乱码的情况。

body内基本标签

body是html的身体,是主体部分,网页内容的展示都写在这个body标签中。

body内基本标签

标签 意义
<h1></h1> 一级标题
<h2></h2> 二级标题
<h3></h3> 三级标题
h4~h6 四级~六级标题
<i></i> 斜体
<b></b> 加粗
<s></s> 删除线
<u></u> 下划线
<p></p> 文本段落
<hr /> 水平分割线
<br /> 换行符

特殊字符

特殊字符 编写方式
空格 &nbsp;
> &gt;
< &lt;
& &amp;
¥ &yen;
版权符号 &copy;
注册符号 &reg;

布局标签(div、span)

标签的类别

标签有块级标签和行内标签,块级标签的内容会独自占据网页的一行,而行内标签自身文本有大多就占多大。像h1~h6、p、div这些标签都是块级标签,span、u、i这些标签都是行内标签。

div标签和span标签

div标签是块级标签,它都是用来划分网页区域的,比如一个网页的导航栏它就可以用div包裹起来。

span标签是行内标签,一般都是用于块级标签内,比如我要修改p标签的部分内容:

<p>我要<span style="color:red">红色</span></p>

图片标签(img)

如果想要在网页中插入图片,可以使用img标签

使用方法:

<img src="" title="" alt="" width="" height=""/>
  • src:图片路径
  • title:鼠标悬浮自动展示提示信息
  • alt:当图片无法正常展示自动提示的信息
  • width:自定义图片宽度
  • height:自定义图片高度

height和width调整一个另外一个自适应调节,比如一个100*100大小的图片,height=10px ,那么width会自适应调节为10px。

超链接标签(a)

如果想要跳转到其他地方,可以使用a标签。

使用方法:

<a href=''></a>

如果我想要跳转到百度:

<a href='https://www.baidu.com'>百度</a>

如果我想要跳转到页面上的某个标签位置,我可以通过标签的id值跳转:

<a href='#标签id'></a>

a标签还有一个target属性值,控制是否当前页面跳转

<!--当前页面跳转-->
<a href='' target="_self"></a>
<!--新建页面跳转-->
<a href='' target="_blank"></a>

标签的两大重要参数(id与class)

1.id

类似于身份证号,同一个html页面上标签的id值不允许重复,用于精确查找某个标签(因为一个html页面上相同标签名的标签太多)

2.class

可以将多个标签归为一类,分类查找(范围查找一次性多个)

列表标签(ul、li)

无序列表可以使用ul标签,ul和li是一起使用的,ul创建列表,li代表列表中的每一项。

使用方法:

<ul>
<li>第一项</li>
<li>第二项</li>
<li>第三项</li>
</ul>

效果:

表格标签

使用方法:

<table border="">
<thead>
<tr> <!--tr表示一行-->
<th>编号</th> <!--th加粗文本-->
<th>姓名</th>
<th>年龄</th>
</tr>
</thead> <!--表头字段-->
<tbody>
<tr>
<td>1</td> <!--td普通文本-->
<td>jason</td>
<td>18</td>
</tr>
<tr>
<td>2</td>
<td>tony</td>
<td>28</td>
</tr>
<tr>
<td>3</td>
<td>kevin</td>
<td>38</td>
</tr>
</tbody> <!--表单数据-->
</table>

效果:

解释:

  • table标签用于创建表格,并定义格式
  • thead标签创建表头,也就是填写数据标题的地方
  • tbody创建表身,也就是填写数据部分的地方
  • tr标签表示一行
  • th标签为加粗文本
  • td标签为普通文本

最新文章

  1. MD5 、 加密工具
  2. RTMP协议中文翻译(首发)(转)
  3. lianjie
  4. Android 之 权限 uses-permission 设置
  5. 初识CSS3之媒体查询(2015年05月31日)
  6. 每次调用fork()函数之后,父线程和创建出的子线程都是从fork()后开始执行
  7. Java中用正则表达式找出数字
  8. 罗汉果与Java虚拟机系列目录与说明
  9. java对象在内存中的结构
  10. 13、属性的get(存)和set(取)器
  11. 学以致用三十六-----弄懂python装饰器
  12. 【资料搜集】Python学习
  13. ajax请求也可以用form表单向后台提交数据!!!!
  14. 微软收购跨平台移动开发公司Xamarin
  15. java初始化块执行顺序
  16. 配置使用sourcemap调试vue源码爬坑
  17. 一步一步学习IdentityServer4 (2) 开始一个简单的事例
  18. Lambda表达式 简介 语法 示例 匿名内部类
  19. 解析XML并将信息封装到对象中
  20. spring boot实战(第二篇)事件监听

热门文章

  1. 行内元素的padding和margin是否有效
  2. 记一次用mpvue框架搭建的小程序
  3. Linux 0.11源码阅读笔记-文件IO流程
  4. 学习如何运用GitHub网站+出现的问题+Git基本操作总结
  5. 微信小程序插件组件-Taro UI
  6. 帝国CMS如何互相转移分表之间的数据
  7. 告别收费BI!如何自己动手做一个免费的可视化数据报表还支持文档在线预览?
  8. Prometheus+Grafana安装搭建
  9. Linux curl遇到错误curl: (3) Illegal characters found in URL
  10. es6 class解析