Netty系列一【Java 网络编程基础】


最近准备学习 Netty ,在学习之前首先来复习下关于网络编程模型基础。因为在深入了解 Netty 的过程中是少不了网络编程基础知识的支持的。

首先我们了解下计算机网络体系结构。

一、计算机网络体系结构

1.1 OSI 七层模型

OSI 七层模型从最底层到最高层主要包括 物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。具体每一层的功能作用可参考下表:

层级层名称作用
7应用层网络服务与最终用户的一个接口
6表示层把应用层提供的信息变换为能够共同理解的形式
5会话层建立,管理,终止会话
4传输层定义传输数据的协议端口号,以及流控和差错校验
3网络层路由选择和中继,在一条数据链路上复用多条网络连接
2数据链路层数据链路的建立,拆除,对数据的检错,纠错是数据链路层的基本任务
1物理层物理层并不是物理媒体本身,它只是开发系统中利用物理媒体实现物理连接的功能描述和执行连接的规程

1.2 TCP/IP 概念层模型

Transmission Control Protocol/Internet Protocol 的简写,中译名为传输控制协议/因特网互联协议,是 Internet 最基本的协议、Internet 国际互联网络的基础,由网络层的 IP 协议和传输层的 TCP 协议组成。协议采用了4层的层级结构。然而在很多情况下,它是利用 IP 进行通信时所必须用到的协议群的统称。

下图为 OSI 七层模型与 TCP/IP 四层协议的对应关系:
OSI七层模型与 TCP/IP 四层协议的对应关系

1.3 TCP 和 UDP

  1. TCP 是面向连接的、可靠的流协议,通过三次握手建立连接,通讯完成时要拆除连接;
  2. UDP是面向无连接的通讯协议,UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象;
  3. 端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。
    一个通信

1.4 三次握手和四次挥手

关于三次握手和四次挥手,可以查看下面两个图便可以理解:

  1. 三次握手
    三次握手流程图
  2. 四次挥手
    四次挥手

二、HTTP 请求的过程

2.1 HTTP 请求的传输过程

HTTP请求的传输过程

2.2 一次完整 HTTP 请求的 7 个过程

  1. 建立 TCP 连接(之前可能还有一次DNS域名解析);
  2. 客户端向服务器发送请求命令;
  3. 客户端发送请求头信息;
  4. 服务服务器应答器;
  5. 返回响应头信息;
  6. 服务器向客户端发送数据;
  7. 服务器关闭 TCP 连接;

三、HTTP 报文结构

HTTP报文结构如下图,在具体细分可分为请求报文和响应报文。
HTTP报文结构
报文首部,在客户端和服务器处理时起至关重要作用的信息几乎都在这里面;报文主体是所需的用户和资源信息。

3.1 请求报文

请求报文
下面截图出具体的请求头信息,以及标注:
请求头

3.2 响应报文

响应报文
响应报文具体信息描述:
响应报文

响应报文中错误码类别:

code码类别原因
1XXinformation(信息性状态码)接受的请求正在处理
2XXsuccess(成功)请求正常处理完毕
3XXredirection(重定向)需要进行附加操作以完成请求
4XXclient error(客户端错误)服务器无法处理请求
5XXserver error(服务端错误)服务器处理请求出错
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值