什么是TCP/IP协议:
网络传输协议
TCP协议:
负责建立链接和断开连接;(三次握手建立连接,四次挥手断开连接)
三次握手:
1.首先客户端发送请求包到服务器端,客户端进入等待状态
2.服务器收到请求包后进行确认,然后发送一个响应包,此时服务器端进入接收状态
3.客户端收到响应包,向服务器再发送一个确认包,发送完毕,客户端和服务器都进入确认状态。完成三次握手
四次挥手:
- 首先客户端向服务端发送断开请求
- 服务端收到响应后进入半关闭状态
- 服务端释放所有报文后向客户端发送最后确认
- 客户端确认关闭断开连接
Tcp和udp的区别:
Tcp对于数据会做校验如果丢包,会自动重发,udp不做校验
IP协议:
负责如何把内容传输过去(分割成一个个小的ip包,包含原端口目标端口,原ip地址和目标ip地址,数据)
tcp协议位于传输层
IP协议位于网络层
Ip组成:
Ipv4 由四段三位数字组成
IPv6 由八个 16 位字段组成,相邻字段用冒号分隔
域名:
域名解决了IP地址是一长串数字加点号不便记忆的问题。域名作为IP地址的名字,是通过DNS服务器解析翻译成IP地址的,全世界的DNS服务器会对域名及IP地址信息更新。
端口号(port)
端口号是用来区分某个电脑(同一ip)里面的不同应用
http协议
超文本传输协议,是用于从万维网服务器传输超文本到本地浏览器的传送协议
常见的http版本号
1.0,1.1,2.0
主要特点:
简单快速,只需传送请求方法和路径。请求方法常用的有GET、POST
灵活:HTTP允许传输任意类型的数据对象
无连接:无连接的含义是限制每次连接只处理一个请求
无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力
支持B/S及C/S模式。
HTTP和https的区别
https比http更安全,https是加密型的,通过ssl协议进行加密
http的默认端口号是8080
https的默认端口号是443
http协议位于应用层
TCP是传输层, http是要基于TCP连接基础上的。简单的说,TCP就是单纯建立连接,不涉及任何我们需要请求的实际数据,简单的传输;http是用来收发数据
TCP是底层通讯协议,定义的是数据传输和连接方式的规范
Url:
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。包含了用于查找某个资源的足够的信息
URL,全称是UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。以下面这个URL为例,介绍下普通URL的各部分组成
组成部分:
协议://域名:端口号/路径/文件?参数&参数
请求包含内容:
- 请求行(方法、协议、版本号)
- 请求头(Cooke,Content-Type、Host)
- 空行
- 请求数据
响应包含内容:
- 状态行(状态码,状态信息)
- 消息报头(server,Content-Type)
- 空行
- 响应数据
常见状态码:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向缓存--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或s请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
常见状态码:
200 OK //客户端请求成功
202 //供处理的请求已被接收,但处理未完成
301 moved permanently //所请求的页面已经转移至新的URL
304 notmodief //客户端发送请求本地存在缓存文档,服务器 告诉客户端,原来缓存可以继续使用。
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
常见的请求方式:
GET,POST,PUT,DELETE.
get方法:
请求指定的网页用于获取信息/查询资源 例如:查询新闻,查询商品
Post方法:
向服务器提交数据 例如:提交表单或者上传文件,登陆,注册
区别:
1 get 传送的数据较小,受限制
Post传送的数据较大,不受限制
2 get把参数放在URl地址上
Post把参数放在body体里
3 post 比 get 更安全
在浏览器地址栏键入URL,按下回车之后会经历以下流程
通过dns解析服务器把域名转化为ip地址
根据ip地址和端口号三次握手建立连接
客户端向服务器端发起请求
服务器向客户端返回响应
释放 TCP连接
浏览器将该 html 文本并显示内容、四次挥手断开连接
B/S和C/S
c/s客户端需要安装专用的客户端软件
b/s用户界面完全通过浏览器实现
区别
一、硬件环境
C/S用户固定,要求拥有相同的操作系统
B/S要有操作系统和浏览器就行
- 客户端要求
C/S客户端的计算机电脑配置要求较高。
B/S客户端的计算机电脑配置要求较低。
三、软件安装
c/s占用本地电脑的储存空间
b/s使用浏览器访问,易推广B/S不占用本地储存空间
- 软件升级和维护
C/S每一个客户端都要升级程序。可以采用自动升级。
B/S客户端不必安装及维护。
五、安全性
c/s它可以对权限进行多层次校验
B/S全部通过网络请求来进行交互,安全性上比C/S稍弱
PV(Page View)
访问量
UV(Unique Visitor)
独立访客
http协议无状态协议,对于事物没有记忆能力,多个请求之间没有关联的
淘宝:登录、搜索商品、订单、支付
cookie
什么是cookie?
cookie是在服务器产生的存储在客户端的一段文本信息,格式:键值对
cookie分类:
会话级:保存内存,当浏览器关闭cookie随之消失
持久化:保存硬盘,只有到失效时间才会消失
如何查看cookie?
使用浏览器F12功能点击application找到cookies管理
cookie如何实现鉴权
当客户端第一次访问服务器时,服务器会产生cookie,然后通过响应头的方式在set-cookie字段里进行传输,传输到客户端。客户端从第2-N次请求都会带上这些cookie
cookie弱点:
cookie保存在客户端,对于一些敏感信息不安全
session
当客户端第一次访问服务器时,服务器会保存一个sessionid,这个sessionid是经过加密的,然后通过cookie把这个sessionid保存到客户端,然后请求服务器的时候只发送sessionid
session缺点:
虽然session的出现解决了cookie保存在客户端不安全的问题,但是给服务器增加了很大的压力,当用户量特别大的时候容易出现服务器崩溃
Token
当客户端第一次访问服务器时,服务器给客户端发送一个token令牌,下次用户再次请求的时候,只需要带上这个令牌,token一般是保存在数据库里面
对称加密、双钥加密
access_token:限制时间是15分钟
refresh_token:一般15天
cookie、session、Token相同点和不同点
相同点:
他们都是服务器产生的,都是用于鉴权
不同点:
- cookie是存储在客户端,session存在服务器,session的安全性比cookie高,所以一般情况下把重要的消息放在session,把不重要的cookie
- session存在服务器的内存,token是存在服务器的数据库里,token比session的好处是更节省服务器资源,token只需要在服务器端解密即可