复习总结

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请求,这个些任务就可以放在不同的线程去执行