赞
踩
互联网协议,属于Internet层协议。版本: ipv4、 ipv6
功能:利用ip地址找到要通信的网络
源ip地址---目标ip地址 32位
生存时间: 数据最多能经过多少个路由器(数据在网络中能存活多久)
如生存时间=64,代表数据最多能经过64个路由器,每经过1个路由器,生存时间就减1,当生存时间=0时,数据还没有传到目的网络就被丢弃了,所以实现的是不可靠传输。
传输控制协议,属于传输层协议
功能特点:
1、利用端口号找到要通信的进程/软件
2、面向连接的协议:建立连接(三次握手)-----传输数据-----断开连接(四次挥手)
三次握手:
A--->B:我要和你建立连接 SYN=1(SYN=1:要和对方建连接,SYN=0:不关注)
B--->A:收到,我也要和你建连接 SYN=1,ACK=1(ACK=1:收到,ACK=0:无意义)
A---->B收到了(连接建立成功)ACK=1
四次挥手:
A--->B:我要和你断开连接 FIN=1 ACK=1(FIN=1:要和对方断开连接 FIN=0:不关注)
B---->A:收到了 ACK=1(ACK=1:收到,ACK=0:无意义)
B---->A:我也要和你断开连接 FIN=1 ACK=1
A---->B:收到了(断开连接) ACK=1
三次握手
四次挥手
3、实现可靠传输的协议
发送的数据有顺序号(seq)、确认号(Ack),当ACK=1(表示收到了) 时Ack才有效,ACK=0 表示没有收到。
Ps:为什么要进行四次挥手?
因为TCP协议是全双工的通信协议,为了保证双方数据都传输完毕再断开连接。
(通信方式:1.单工通信:只能一方发消息,一方只能收消息)
2.半双工通信:双方都可以发送和接收消息,但是不能同时进行(如对讲机)
3.全双工通信:同一时间,双方都可以发送和接收消息(如电话)
Ps:为什么说TCP协议是实现可靠传输的协议?
1、传输数据前,有三次握手和四次挥手
2、收到数据的一方要给出回复
3、数据没有收到后,还提供重传功能
Ps:TCP和UDP协议的区别?
UDP:用户数据报协议
相同点:都是传输层协议,端口号寻址
不同点:1、TCP:面向连接的协议,UDP协议:面向非连接的协议(TCP协议有三次握手四次挥手,UDP协议没有)
2、TCP实现可靠传输,UDP实现不可靠传输(收到一方没有回复,不提供重传)
3、TCP传输效率不如UDP效率高
超文本传送协议,是web系统和浏览器之间的通信协议,规定了浏览器和服务器之间的通信规则。属于应用层的协议。
请求响应式的协议:
1、请求:浏览器发往web服务器(包含4部分)
(1)请求行:表名请求方式
(URL、协议名称、协议版本)
get:获取数据、post:向服务器提交数据、put: 更改服务器上的数据、delete: 删除数据
(2)请求头(request header):
host: 主机,访问服务器的主机地址(ip、域名)
connection: keep-alive、close
content-type: 请求的数据是什么类型
user-agent: 客户端使用的操作系统、浏览器版本
cookie:
(3)空一行
(4)请求体:put、post、delete的数据放在请求体里面
get请求方式的数据在url中
Ps:get请求和post请求区别:
(1)get请求主要是获取数据,post请求提交数据
(2)get请求的数据在url中,post请求的数据在请求体里面
(3)get请求数据有长度限制(浏览器的地址栏有长度限制),post请求数据长度没有限制
(4)get请求相对不安全(数据在url中暴露出来),post请求相对安全
(5)get请求刷新浏览器时,请求不会重新提交给服务器,post请求刷新浏览器,请求会重写再次提交给服务器
(2)响应:web服务器返回数据给浏览器(包含4部分)
(1)状态行:协议+版本+响应状态码+原因短语
响应状态码:1xx、2xx、3xx 、4xx、5xx
1xx-----3xx 正常的响应 4xx---5xx 异常的响应
1xx: 接收到请求并需要继续处理请求
2xx: 请求已被成功接收,理解接受。 200 请求成功
3xx: 重定向,要完成该请求必须进行进一步操作
4xx: 客户端有错误
403:服务器拒绝客户端的请求 404:请求的资源找不到、 405:禁止请求中指定的方法
5xx: 服务器有问题,无法完成请求 500:内部服务器错误 503:服务器目前无法使用
(2)响应头:
server: 告诉浏览器web服务器版本
content-type: 返回的响应数据类型
connection: keep-alive、close
set-cookie: 下面有
(3)空一行
(4)响应体:返回响应的数据
(1)无连接:限制每次tcp连接只能处理1次请求,请求处理完之后断开连接。
如何解决:connection: keep-alive(长连接)、close(短连接)
1.0版本:close:一次tcp连接只能处理1个请求,请求完毕,断开连接。
1.1版本:keep-alive:请求完毕后保持连接不断开,一次tcp连接可以处理多个请求。
(2)无状态:服务器记不住客户端之前发送过什么请求、目前状态如何。
如何解决:cookie/session,用来记录用户个性化信息。
Cookie:web服务器生成的,通过set-cookie字段把个性化的信息保持到该字段,传给浏览器,浏览器把它保持到客户端电脑,下次发送请求时,通过请求头cookie字段把cookie值发送给服务器。
session: 会话,由服务器生成,浏览器给服务器发送一次请求,服务器给浏览器返回一次响应的过程就称为一次会话,保存到服务器上的。
session id:代表不同访问网站的用户,每个用户分配1个唯一的session id
Ps:cookie和session的区别:
1. cookie保存在客户端,session保存到服务端
2. cookie不是很安全,放到客户端
3.单个cookie保存的数据不能超过4k, 很多浏览器限制一个网站最多保存20个cookie
4. cookie的过期时间可以设置很长,session一般浏览器关闭后就失效
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。