安卓网络知识总结(一)--网络基础知识

网络基础知识

上一周学习了计算机网络的开始的一部分,而后网上看一个老师的课,才算网络这块刚刚入门,就是一直本身网络这块很迷,就只是会写项目的时候用别人的网络框架,本身没有清楚的认识这个东西。因此准备这周好好学下安卓的网络个个框架和网络的基本知识web

什么叫网络

记得一位哲人说过“没有人是一座孤岛”,看着如今的网络,我信了。
网络把这个世界个个部分链接在一块儿,无数的数据包每天从世界的一端跑到另外一端,以为真的好厉害。
我的对网络的理解就是一条0101010101的数据河流,从一个地方到另外一个地方,带着各类数据,不断的跑啊跑,带着各类网络包就像一条条鱼同样,被人抓上去。有的局域网就是一个小水潭,只能几个机子互相传数据,有的网络和网络直接有栅栏,咱们有的鱼只能假传本身是另外一种品种的鱼,才能去围栏外面的海域看一下//这个只是我肤浅的理解网络,若是有不对的地方,请指出服务器

计算机的网络体系结构

计算机网络的各层 + 其协议的集合
计算机的网络个个层和体系
计算机网络体系结构分为3种:
OSI体系结构、TCP / IP体系结构、五层体系结构
OSI体系结构:概念清楚 & 理念完整,但复杂 & 不实用
TCP / IP体系结构:含了一系列构成互联网基础的网络协议,是Internet的核心协议 & 被普遍应用于局域网 和 广域网
五层体系结构:融合了OSI 与 TCP / IP的体系结构,目的是为了学习 和计算机原理
这里写图片描述
TCP协议
Transmission Control Protocol,即 传输控制协议
属于 传输层通讯协议
基于TCP的应用层协议有HTTP、SMTP、FTP、Telnet 和 POP3网络

什么叫协议

在个人理解,协议就是一个规则,按照双方以前约定好的东西,就想你在C语言编译器上写个下面的代码框架

int main(void)
{
    printf("hello world");
    return 0;
}

而后输出结果就是hello world,计算机又听不懂你说的话,有不认识你写的字,可是就是按照以前的协议能够输出出来这个东西,人类的语言和文字也是个协议,电脑就只认识0和1,就是个机器罢了。
协议的三要素tcp

  • 语法:就是你说的话要有必定的规律,符合必定的规则,不能随便说,好比括号啊,空格啊,主谓宾这种东西。
  • 语意:就是这句话表明的意思,好比中文说“我爱你”,英文就是“i love you ”,虽然这两个句子长的不像,可是表达都是同一种人类感情。
  • 顺序:就是先干吗后干吗,后干吗,要按必定的顺序来。

HTTP相关知识

由于本身就安卓只接触了HTTP,就好好学下这个
它是基于tcp协议下应用层的一个协议
这里写图片描述svg

请求原理

http是一种应用层协议,它经过tcp实现了可靠的数据传输。详细的交互流程以下:
1客户端执行网络请求,从url里面解析出来服务器的主机名
2将服务器的主机名转换成服务器的ip地址
3将端口号从url解析出来
4创建一条客户端和服务器端的tcp连接
5客户端经过输入流向服务器发送一条http请求
6服务器向客户端回送一条http响应报文
7客户端从输入流获取报文
8解析报文,关闭链接学习

工做方式

HTTP协议采用 请求 / 响应 的工做方式
这里写图片描述
HTTP报文详解 分别用于 发送请求 & 响应请求时
HTTP在 应用层 交互数据的方式 = 报文
HTTP的报文分为:请求报文 & 响应报文ui

请求报文

HTTP的请求报文由 请求行、请求头 & 请求体 组成,以下图这里写图片描述
请求行
做用
声明 请求方法 、主机域名、资源路径 & 协议版本
结构
请求行的组成 = 请求方法 + 请求路径 + 协议版本
这里写图片描述
请求头
做用:声明 客户端、服务器 / 报文的部分信息
使用方式:采用”header(字段名):value(值)“的方式
经常使用请求头1. 请求和响应报文的通用Header2 常见请求Header url

请求体
做用:存放 需发送给服务器的数据信息
可选部分,如 GET请求就无请求数据spa

相应报文

HTTP的响应报文包括:状态行、响应头 & 响应体
这里写图片描述
状态行
做用
声明 协议版本,状态码,状态码描述

响应头
做用:声明客户端、服务器 / 报文的部分信息
使用方式:采用”header(字段名):value(值)“的方式
经常使用请求头

响应体
做用:存放需返回给客户端的数据信息
使用方式:和请求体是一致的,一样分为:任意类型的数据交换格式、键值对形式和分部分形式

总结

简单的网络知识就是这些,其余的概念仍是要好好本身再看下,我仍是赶忙写项目吧哇哇哇