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)第四次:客户端收到报文后,想服务器发送一个确认序号。链接关闭;

你可能感兴趣的:(http)