复习总结
HTTP
-
80端口
-
浏览器输入链接的整个过程
1.dns解析
2.3次握手建立tcp链接
3.客户端发送http请求数据包(请求行,请求头,请求体)
4.服务端返回http响应数据包(响应行,响应头,响应体)
5.断开tcp链接(http1.1版本tcp链接会存活一段时间)
6.客户端处理返回后的数据 -
常用的http返回状态码
200:成功
3开头:请求重定向
4开头:客户端请求有错误
5开头:服务端内部错误 -
常用的http请求方法
GET方法
POST方法
DEAD方法(如果客户端发送的是head请求,服务端只会返回响应行和响应头,不会 返回真正的数据,也就是不会返回响应体)
DELETE方法 -
get和post的区别
get请求会将请求参数放在URL的后面,用户可以直接看到,不安全
post请求会将数据放在请求消息的请求体中,用户看不见,相对安全
HTTP1.0 1.1 2.0的区别
1.0:每次发送Http请求之前都会建立tcp链接(3次握手),http请求结束之后,断开tcp链接(4次挥手)
1.1:http请求结束之后,不会立即断开tcp链接,会将tcp存活一段时间,如果有新的http请求,会复用已经存在的tcp链接
2.0:
- 多路复用:在1.0和1.1时代,一个tcp链接同一时间只能发送一个http请求,在2.0时代,一个tcp链接可以同时发送多个http请求
- 数据压缩:1.1时代客户端和服务端通信的数据格式主要是文本形式,在2.0时代,使用的新的编码机制,对数据进行压缩,较少传送数据的大小
- Header压缩:
HTTPS
-
443端口
-
HTTPS在http协议上加入了3个功能:身份认证,数据加密,数据完整性校验
-
身份认证
服务端在CA机构申请合法证书,客户端在向服务端发送请求的时候,服务端会把证书返回给客户端,客户端校验证书是否合法,如果合法,则发送http请求数据,如果不合法,则断开链接 -
数据加密
客户端和服务端在进行的数据发送,之前会对数据使用加密算法进行加密,
HTTP抓包原理
客户端在向服务端发送http请求时,被抓包软件拦截,客户端实际上是和抓包软件进行的tcp链接,抓包软件将拦截的http请求数据包,在转发给服务端,服务端返回的数据包,也是先由抓包软件进行拦截,在转发给客户端
TCP和UDP的区别
- tcp是面向链接的(tcp链接),udp是面向无链接的
- udp可能出现丢包,tcp通过ack机制确保每个数据都会收到,并且是有序的
- tcp消耗系统资源多,udp少
TCP3次握手4次挥手
osi7层模型
Android的四大组件
activity,Broadcast Receive,Content Provider,service
广播主要同于不同组件之间的通信
service主要用于在后台处理一些耗时操作
进程和线程的区别
根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位
- 不同进程有自己独立的内存空间,一个进程中不同的线程共享同一个内存空间
- 在Android开发中,我们运行的一个APP就是一个进程,APP在运行的过程中可能需要几个任务同时执行,比如从磁盘加载图片和与服务端进行http请求,这个些任务就可以放在不同的线程去执行