前端定义
# 所有与用户直接打交道的都可以称之为是前端.------>能够直接使用肉眼直接看到的都是前端
举例:PC端页面、手机端页面、平板页面、车载显示器等
前端学习内容
"""前端三剑客"""
HTML:一个网站的骨架,没有任何的样式
CSS:就是给网页添加样式的,目的是让其更加的美观、好看、漂亮而已
JavaScript:它主要用来让网页动起来,简称js
软件开发架构
"""前端的学习只需要一个浏览器即可,前端的代码是有浏览器开解释的"""
1. C/S架构
2. B/S架构
# 前端的代码在哪里写呢?
在浏览器中写的前端代码不能够永久生效,只能临时看到效果,刷新页面就消失
因此,我们写前端代码依然需要写在文件里
# 辅助我们写前端的工具有哪些:
1. 都可以直接写在文本中.txt
2. vscode、pycharm、notepad++、sublime等
在浏览器中输入网站,按下回车键,到页面渲染成功,中间发生什么事情
"""
1. 客户端(浏览器)向服务端发起请求
2. 服务端接收浏览器的请求
3. 服务端要处理好前端要的数据返回
4. 把数据返回给前端---->浏览器中,按照一定的规则把后端返回的数据展示给用户
"""
# 如果我们写一个服务端,让浏览器充当我的客户端,我也可以写出一个基于浏览器的项目
# 目前我们缺的就是服务端,很显然我么可以通过socket写出来一个服务端
言外之意,浏览器是可以充当很多服务端的客户端的
1. 可以充当百度的客户端
2. 京东的
3. 腾讯视频的
# 问题:浏览器是如何识别是哪个服务端的
"""
所有的服务端必须遵循一个原则,这个原则就是浏览器来规定的,
如果不遵循这个规则,那么你的数据我就没办法来识别
"""
# 如果你的服务端返回的数据项被浏览器识别,你就必须遵循HTTP协议
HTTP协议
定义:HTTP协议也叫超文本传输协议,
作用:就是规定了服务端和客户端之间的数据传输格式
HTTP协议的四大特性
1. 是基于请求和响应的------>请求:客户端主动向服务端发起请求------->响应:服务端向客户端返回
2. 它是基于TCP/IP协议之上的应用层协议,
# HTTP协议它是基于TCP协议写出来的
3. 无状态
# 就是它不能够保存用户的信息
'''背景:早期的网站用户是不需要登录的,比如新闻类的、博客类的网站是不需要登录的,也就不需要保存用户的消息。随着技术的发展,诞生了像支付宝、京东网站等网站, 就需要用户登录了,由于HTTP协议压根就不能保存用户信息,所以就诞生了一些保存用户信息的技术:'''
cookie、session、token...
4. 短链接/无连接
# 当服务端和客户端要想传输数据就必须建立连接,正常情况,二次成功发送一次消息就断开连接,称之为是短链接
长链接:二者成功发送一次消息之后,不会立马断开连接,而是中间会隔一段时间,如果双方都没有再次发送消息,就断开.
场景:客服系统(逻辑很复杂)
客户端向服务端发起请求会携带一些数据,就称之为是请求数据
HTTP协议的请求数据格式
# 常用的版本号就是http1.X版本,新版本应该是http2.x
请求首行(请求方式、协议/版本号)
请求头
\r\n
请求体(不是什么请求方式都有的,GET请求方式没有)
HTTP协议的响应数据格式
响应首行(响应状态码)
响应头
\r\n
响应体
响应状态码:
"""简单描述就是使用一个简单的数字代表一段复杂的描述性信息"""
1xx: 了解,服务端接收数据成功,客户端还可以继续提交
2xx:掌握,200,代表的是响应成功
3xx: 301, 302,代表的是重定向,代码内部帮助我们跳转到了指定页面
4xx:404,资源不存在,找不到,not found,制作404定制页面
5xx:500,服务器内部错误
"""如果你想深入了解HTTP协议,推荐看图解HTTP,图解TCP"""
请求方式:
GET
朝服务端要数据的时候,一般都是使用GET请求方式
eg:https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=49055317_42_hao_pg&wd=%E7%BE%8E%E5%A5%B3
协议:// 域名/后缀/?参数
协议:// 域名/后缀/?k=v&k1=v1&k2=v2...
# URL: 统一资源定位符(网址)
POST:
"""朝服务端提交数据逇时候,一般使用POST请求方式"""
例子:百度的登录功能,把用户名和密码提交到百度的后端做验证.用的就是POST请求
面试题:聊聊GET请求和POST请求的区别
1. get请求方式数据不够安全,POST请求数据更加安全
2. GET请求方式没有请求体,而POST请求有请求体
3. GET请求能够携带的数据量没有POST请求携带的多
GET请求一般携带4KB的大小
POST请求基本上没有限制
记住:学前端,以后就是有谷歌浏览器,默认浏览器:360,qq,ie(必须不能用)
在前端中,最难的就是浏览器兼容性问题:同样的代码在不同的浏览器中展示的效果不一样
谷歌浏览器的兼容性是最强的,另外一点就是它非常好用的,调试代码方便等