网络编程


1. 模型及TCP/IP模型

在这里插入图片描述
在这里插入图片描述


2. IP协议

  网络层协议
  将消息从一个主机发送到另一个主机,消息在传送的过程中被分割成一个个的小包。不能解决数据分组在传输过程中出现的问题,由此出现了TCP


3. TCP协议

  传输层协议
  TCP协议是一种可靠的网络协议,它在通信实例的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。

总结一句话:是一种面向连接的,可靠的,基于字节流的传输层通信协议

3.1 作用

  让通信的连个主机之间建立一个连接:用于发送额接收数据的虚拟链路

3.2 适用情况

3.2 为什么说TCP可靠

    采用了重发机制,当一个通信实体发送一个消息给另一个通信实体后,需要接收到另一个通信实体的确认消息,如果没有收到另一个通信实体的确认消息,则会再次重发刚才发送的消息

3.3 优点

  1. 可靠

3.4 缺点

  1. 相比UDP,效率低,对系统资源要求较多

4. UDP

  UDP是传输层协议
  UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个socket只是发送,接收数据报的对象。

总结一句话:是一种面向无连接的,不可靠的信息传送服务


5. 作用

  完成网络数据流和数据报之间的转换——在信息的发送端,UDP协议将网络数据封装成数据报,然后将数据报发送出去;在信息的接收端,UDP协议将数据报转换成实际数据内容

5.1 适用情况

  一次只传送少量数据、对可靠性要求不高

5.2 为什么说UDP协议不可靠

  UDP是一种面向非连接的协议,即在正式通信前不必与对方建立连接,不管对方状态就直接发送。至于对象是否可以接收到这些数据内容,UDP协议是无法控制的,所以不可靠

5.3 优点

  1. 通信是无需建立连接,所以通信效率比较高
  2. 具有较好的实时性

5.4 缺点

  1. 不可靠,不能保证数据一定到达接收方

6. HTTP协议

  应用层协议
  HTTP是超文本传输协议,是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息, 客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成

  HTTP协议是建立在请求/响应模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URL、协议版本以及
相关的MIME样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。

  虽然HTTP本身是一个协议,但其最终还是基于TCP的
8种请求:https://blog.youkuaiyun.com/jinianh/article/details/82844310

6.1 http的8种请求方式

  1. opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户端查看服务器性能)
  2. Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)
  3. Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改
  4. Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)
  5. Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)
  6. Delete 请求服务器删除request-URL所标示的资源*(请求服务器删除页面)
  7. Trace 回显服务器收到的请求,用于测试和诊断
  8. Connect HTTP/1.1协议中能够将连接改为管道方式的代理服务器

6.2 常见错误码

常见有5类状态码详细列出:

  1. 客户方错误
    100  继续
    101  交换协议

  2. 成功

    200  OK
    201  已创建
    202  接收
    203  非认证信息
    204  无内容
    205  重置内容
    206  部分内容

  3. 重定向

    300  多路选择
    301  永久转移
    302  暂时转移
    303  参见其它
    304  未修改(Not Modified)
    305  使用代理

  4. 客户方错误

    400  错误请求(Bad Request)
    401  未认证
    402  需要付费
    403  禁止(Forbidden)
    404  未找到(Not Found)
    405  方法不允许
    406  不接受
    407  需要代理认证
    408  请求超时
    409  冲突
    410  失败
    411  需要长度
    412  条件失败
    413  请求实体太大
    414  请求URI太长
    415  不支持媒体类型

  5. 服务器错误

    500  服务器内部错误
    501  未实现(Not Implemented)
    502  网关失败
    504  网关超时
    505  HTTP版本不支持


7. IP、TCP/UDP、HTTP关系

  TCP和UDP使用IP协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等

  IP协议来连接网络;TCP是一种允许我们安全传输数据的机制,使用TCP协议来传输数据的HTTP是Web服务器和客户端使用的特殊协议。HTTP基于TCP协议,但是却可以使用socket去建立一个TCP连接

总之:TCP依赖IP,HTTP又基于TCP


8. 三次握手/四次挥手

  博文推荐:https://blog.youkuaiyun.com/ZWE7616175/article/details/80432486


9. 长连接/短连接

  长连接是指的TCP连接,而不是HTTP连接
  博文推荐:https://www.jianshu.com/p/3fc3646fad80


10.网络编程的通信模式

  博文推荐:http://www.tianshouzhi.com/api/tutorials/netty/221,
  select,poll,epoll讲解:https://blog.youkuaiyun.com/qq_35976351/article/details/85228002

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值