网络基础知识总结

Posted by 阿呆 on 2019-02-03

前言

各大招聘信息上,总会有那么一条:

熟悉Android下网络通信机制,对socket通信、TCP/IP、HTTP有一定理解和经验

平时用着OkHttp或者Retrofit,一切都似乎很自然,很简单,但是这上面说的这些东西,到底是个啥东西?

本篇文章就是立足这个问题,带你全面剖析网络编程的相关知识,可能深度不够,但是力求从整体上对网络编程有个大概的认识。

什么是网络

网络把这个世界各个部分紧密地连接在一起,无数地数据包天天从世界的一端跑到另一端。个人对于网络的理解就是,一种拓扑结构,这种结构把存在于网络上的主机联系在一起

计算机的网络体系结构

计算机网络体系结构分为3种:

  • OSI体系结构
  • TCP/IP 体系结构
  • 五层体系结构

TCP 协议

Transmission Control Protocol | 传输控制协议 ;属于传输层通信协议

基于TCP的应用层协议有 HTTP、SMTP、FTP、Telent 和 POP3

什么是协议

以我的理解,协议就是一个规则,按照双方之前约定好的东西,来封装和解释

应用层HTTP协议相关知识

因为Android主要就是做应用层,接触HTTP是非常多的,这块需要重点掌握;它是基于TCP协议下应用层的一个协议

HTTP相关知识

工作方式

工作方式

HTTP 请求报文

HTTP 响应报文

Http响应报文