http
http含义:超文本传输协议 head + body
传输过程
1:客户端填好数据head body(get在head请求里,post在body里)
2:发送数据
(1).域名换回ip地址
(2).http tcp建立连接三次握手
(3).发送head数据
(4).发段空行(空格或者回车)(区分head与body)
(5).发送body (可能多次,分段流《因为,传输每次内容有大小限制》)(可能多次,分段流《因为,传输每次内容有大小限制,在运输层拆分MTU1500字节最大传输值--拓展:UDP是在网络层拆分》)
3:接受数据
(1).封装head body;
(2).发送head数据;
(3).发空行;
(4).发送body;
4:链接断开:四次挥手;
body需要转换成二进制数据
1.toke/session封装到head里面,提高服务器效率,不用去body去读;
2.get数据在head,有数据大小限制ie浏览器限制2k,明文;
post在body里,稍微安全点,其实很多抓包工具也可以抓出来;
3.nsdata oc的二进制对象;
http苹果支持,要支持ipv6
断点续传 标记告诉服务器重那个字节开始下载
四:请求方式
1.post:将数据单独放在流中,可能多次分段流;相对安全些,一般用于更新数据
2.get:直接将数据放在url后面,即head里面,有大小限制;一般用于获取数据
3.head:请求资源的元数据方法;
(定义的与服务器的交互方法除了get<获取>、post<改>还有put<增>、delete<删>)
五.三次握手:
(1)第一次:建立连接时,客户端发送同步序列编号到服务器,并进入发送状态,等待服务器确认;
(2)第二次:服务器收到同步序列编号,确认并同时自己也发送一个同步序列编号+确认标识,此时服务器进入接收状态;
(3)第三次:客户端收到服务器的包,并向服务器发送确认收到标识,随后链接成功;
(简介记忆:客户端发送同步序列->服务器也返回同步序列+去确认标志->客户端发送收到了确认标志消息)
六.四次挥手
(1)第一次:客户端向服务器发送一个带有结束标记的报文;
(2)第二次:服务器收到报文后,向客服端发送一个确认序号,同时通知自己响应的应用程序:对方关闭链接;
(3)第三次:服务器向客户端发送一个带有结束标记的报文;
(4)第四次:客户端收到报文后,想服务器发送一个确认序号。链接关闭;