01.前端必备知识
前端必备知识
1. web本质
import socket
sk = socket.socket()
sk.bind(("127.0.0.1", 8080))
sk.listen(5)
while True:
conn, addr = sk.accept()
data = conn.recv(8096)
# 这是服务端响应的格式,如果没有则打开浏览器得不到响应信息
conn.send(b"HTTP/1.1 200 OK\r\n\r\n")
conn.send(b"<h1>Hello world!</h1>")
conn.close()
本质
:浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面
2. http协议
show code
"""
HTTP协议的由来(sql语句由来)
浏览器只有一个如何兼容N多个服务端
"""
# 四大特性
1 基于请求响应
2 基于TCP/IP作用于应用层之上的协议
3 无状态
无论来多少次 都待你如初见
如何做到保存用户状态???
cookie、session、token
4 无/短链接
请求来我响应你 之后就没有联系了
长链接:websocket(群聊功能、服务端主动给客户端发送消息)
# 请求数据格式
请求首行(HTTP协议的版本,当前请求方式)
请求头(一大堆k,v键值对)
请求体(并不是所有的请求方式都有请求体,get没有post有)
# 响应数据格式
响应首行(HTTP协议的版本,响应状态码)
响应头(一大堆k,v键值对)
响应体(浏览器展示给用户看的内容)
# URL
统一资源定位符 类似于坐标
# 请求方式
1.get请求
朝别人要数据(也是可以携带参数的,只不过参数不是放在请求体里面的,而是直接放在url的后面)
url?username=jason&password=123
2.post请求
朝别人提交数据
# 响应状态码
"""用简短的数字来表示一大串提示性信息"""
1XX:服务端已经成功接收到了你的数据 正在处理你可以继续提交
2XX:请求成功(200 OK)
3XX:重定向(你想访问A页面但是给你调到了B页面)
4XX:请求错误(404请求资源不存在、403请求不符合条件)
5XX:服务端内部错误(500)
ps:上述的状态码是HTTP协议规定的,其实到了公司之后每个公司还会自己定制自己的状态及提示信息
公司A
1000:
1001:
1002:
公司B
2001:
2002:
2003:
...
再坚持一下下,会越来越优秀