• 《图解HTTP》Chapter 1-4


    chapter 1

    1. TCP/IP: 互联网相关的协议集合
    2. TCP/IP分层: 应用层,传输层,网络层,数据链路层
      • 应用层:FTP(File Transfer Protocol)和DNS(Domain Name System)就是其中的两类。 HTTP协议也在该层。
      • 传输层:有两种性质不同的协议TCP(Transmission Control Protocol)和UDP(User Data Protocol)
      • 网络层:IP(Internet Protocol)网际协议
      • 链路层:
    3. DNS: 域名系统,负责解析域名。
    4. 三次握手:
      • client send SYN
      • server send SYN/ACK
      • client send ACK

    chapter 2

    1. HTTP是不保存状态的协议 stateless减少CPU及内存资源的消耗。
    2. HTTP使用URI定位互联网上的资源(可访问互联网上的任意资源)
    3. HTTP方法:
      • GET : 获取资源,用于请求被URI标识的资源
      • POST : 传输实体主体
      • PUT : 传输文件,HTTP/1.0不带验证机制,一般不采用该方法
      • HEAD: 用于确认URI的有效性以及资源更新日期等信息。只相应首部信息
      • DELETE: 用于删除resource,自身不带验证机制。配合web应用程序的验证机制或遵守REST标准时使用。
      • OPTIONS: 查询支持的方法
      • TRACE: 追踪路径,不咋用了,还容易引发跨站追踪
      • CONNECT : 要求用隋代协议连接代理
    4. 持久化连接:(keep-alive or connecotion resue)减少无谓的TCP连接与断开,增加通信量的开销
    5. 管线化:在持久化的基础上管线化(pipelining),不用等到响应结果就可以再次发送请求
    6. 使用Cookie的状态管理:通过在请求及相应的内容中写入Cookie信息控制client的状态。Server发送Set-Cookie的首部字段信息通知client保存Cookie。客户端再次发送时带有Cookie,Server就可以判断是哪个client发送的信息。

    chapter 3

    1. 请求报文结构

    报文首部(包含请求行及各种首部字段)
    空行(/r/n or CR+LF)
    报文主体(非必要)

    Get /HTTP/1.1            //请求行
    User-Agent:Mozilla...... //各种首部字段
    Content-Length:125
    /r/n
    内容                     // 请求主体
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 一般有四种首部:通用首部,请求首部,相应首部,实体首部。
    2. 分块传输编码:将实体主体分块编码进行传输,让浏览器逐步显示页面。每一块都会采用十六进制标记块大小。最后一块用“0(/r/n)”标记
    3. Range Request:请求时可使用首部字段Range指定请求资源的Byte范围
    4. 内容协商:请求相同的URI时,会根据浏览器的默认语言返回对应的英文或中文界面。
      • 服务器驱动协商:Server根据首部字段返回结果。
      • 客户端驱动协商:用户从Web页面进行语言选择。还可利用JS进行选择。
      • 透明协商:上述两者的结合。

    chapter 4

    1. 状态码:告知客户端请求的结果。通过状态码就可以知道服务器是否正常处理请求。由三位数字和原因短语组成。
    2. 状态码大致类别
      • 1XX:Informational(信息型状态码) 接受的请求正在处理。
      • 2XX:Success(成功) 请求正常处理完毕。
      • 3XX:Redirection(重定向状态码) 需要进行附加操作以完成请求。
      • 4XX:Client Error (客户端错误) 服务器无法处理。
      • 5XX:Server Error(服务端错误) 服务器处理请求出错。
    3. 2XX:
      • 200 OK:请求成功
      • 204 No Centent:请求成功,返回不包含实体主体
      • 206 Partial Content:范围请求成功
    4. 3XX:
      • 301 Moved Permanently:永久性重定向。资源已被重新分配URI。 例如最后忘记添加反斜杠"/"就会301
      • 302 Found:临时性重定向。
      • 303 See Other: 资源存在另一个URI,请求新的URI。
      • 304 Not Modified:请求时附带条件,资源已找到,但不符合条件。
    5. 4XX:
      • 400 Bad Request:请求语法错误。
      • 401 Unauthorized:表示需要HTTP认证,如果是第二次,表示认证失败。
      • 403 Forbidden:请求资源的访问被拒绝,权限问题等。
      • 404 Not Found:找不到资源。
    6. 5XX:
      • 500 Internal Server Error:服务器内部资源故障。
      • 503 Service Unavailable:服务器很忙,如果知道什么时候能忙完,最好相应带Retry-After。
  • 相关阅读:
    第一章:最新版零基础学习 PYTHON 教程(第十四节 - Python 条件和循环语句–Python 中的 with 语句)
    【python】内置函数汇总
    Java技能树-RE-正则应用-字符串篇
    自定义 Hook(State Hook)_web前端培训
    Docker基础
    queryWrapper手册及示例
    Tomcat web.xml文件中的mime-mapping
    【6】uniform颜色写入
    如何合理的导出help link 成HTML
    一行命令找出 Linux 中所有真实用户
  • 原文地址:https://blog.csdn.net/haizichetian/article/details/125526372