http、tcp、ip、udp

http协议是建立在tcp的基础上

http协议定义传输的数据格式与规范

tcp协议规定数据传输和连接方式

 

Socket连接

           建立Socket连接时可以指定传输协议,即TCP或UDP协议

TCP连接:

           建立tcp连接需要经过三次握手过程

HTTP连接:

           在建立TCP连接的基础上,再建立HTTP连接

 

HTTP请求报文

           请求行:请求方法、请求地址、协议版本

           请求头:键值对的方式,包括host、user-agent、connection、accept-charset等

           空行(请求头结束后会有一个空行表示请求头已经结束,接下来是请求数据)

           请求数据:

HTTP响应报文:

           响应行:协议版本、状态码、状态描述

           响应头:键值对的方式,包括server、Content-Type、Content-Length等

           空行(响应头结束后会有一个空行表示响应头已经结束,接下来是响应数据)

           响应数据

 

TCP的四次握手

           前三次:

           第一次:

 

TCP粘包和半包现象

通俗讲:tcp发送的两个包变成一个包发出去了;一个包太大,被拆成了两个包

原因:

  • 一次性发送的字节大小大于套接字发送缓冲区的大小
  • 进行MSS大小的TCP分段:MSS:最大报文段长度(整个TCP报文段长度=TCP首部+MSS)

③以太网的playload大于MTU进行IP分片:MTU是一种通信协议的某一个层面上的能够通过的最大数据大小;当数据包大小大于MTU时会在IP层进行分片

解决:

  • 消息定长
  • 在包的尾部增加回车或者空格符等进行分割
  • 将消息分为消息头和消息尾
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值