前言

大学老师曾经说过,计算机界有三本天书,分别是:数据结构、计算机组成原理、计算机网络。所以网络也是我们从事计算机开发必须了解且掌握的一门技术

网络七层模型

  • 应用层
    访问网络服务的端口,如HTTP传输 ‘hello,world’
  • 表示层
    提供数据格式转换
  • 会话层
    建立端连接并提供访问验证 如SSL/TLS认证
  • 传输层
    UDP/TCP + ‘hello,world’
  • 网络层
    IP + UDP/TCP + ‘hello,world’
  • 数据链路层
    MAC地址 + IP + UDP/TCP + ‘hello,world’ + 帧尾
  • 物理层
    传输二进制 01010101001

HTTP

  1. 请求/相应报文

      **请求报文包括:**      请求方法      URL      协议版本HTTP1.0      首部字段名      请求体 (POST请求)  **响应报文包括:**      版本      状态码      短语      首部字段名      响应实体
  2. 请求方法
    GET:

       代表获取资源   特点:       安全:不应该引起Server端的任何状态变化       幂等:请求多次的结果一样       可缓存:代理服务器可以缓存

    POST:

       代表处理资源   特点:       不安全       不幂等       不可缓存

    HEAD
    OPTION
    PUT

  3. 状态码
    200:

       请求成功

    300:

       请求重定向

    400:

       由于客户端请求地址和参数引用的失败

    500:

       服务端原因           
  4. 连接接建立流程
    TCP:

       三次握手、四次挥手
  5. HTTP特点
    无连接:

       每次请求都需要建立TCP连接

    无状态

       不会保存记录用户的信息和状态
  6. 解决HTTP无连接问题
    在同一条TCP上面产生多次HTTP请求
    头部字段(Header):

       Connection:keep-live   Time: 20 在一定时间内不需要再次建立TCP连接   Max: 在建立连接时间内最多请求次数

    判断一个请求的结束?

       Content-length   空chunked
  7. 解决HTTP无状态问题
    解决方案:Cookie / Session
  8. 列表项目