前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航

HTTP协议系列(一)

首页
2018-02-26 23:20:43
Back-end
HTTP

# 一 、基础概念

# 1.1 Web 基础

  • HTTP(HyperText Transfer Protocol,超文本传输协议)。
  • WWW(World Wide Web)的三种技术:HTML、HTTP、URL。
  • RFC(Request for Comments,征求修正意见书),互联网的设计文档。

# 1.2 URL

  • URI(Uniform Resource Indentifier`,统一资源标识符)
  • URL(Uniform Resource Locator,统一资源定位符)
  • URN(Uniform Resource Name,统一资源名称),例如 urn:isbn:0-486-27557-4 。

URI 包含 URL 和 URN,目前 WEB 只有 URL 比较流行,所以见到的基本都是 URL。

# 1.3 请求和响应报文

# 1.3.1 请求报文

# 1.3.2. 响应报文

# 二、HTTP 方法

  • 客户端发送的 请求报文 第一行为请求行,包含了方法字段。

# 2.1 GET

获取资源

  • 当前网络请求中,绝大部分使用的是 GET 方法。

# 2.2 HEAD

获取报文首部

  • 和 GET 方法一样,但是不返回报文实体主体部分。
  • 主要用于确认 URL 的有效性以及资源更新的日期时间等。

# 2.3 POST

传输实体主体

  • POST 主要用来传输数据,而 GET 主要用来获取资源。

# 2.4 PUT

上传文件

  • 由于自身不带验证机制,任何人都可以上传文件,因此存在安全性问题,一般不使用该方法。
PUT /new.html HTTP/1.1
Host: example.com
Content-type: text/html
Content-length: 16

<p>New File</p>
@前端进阶之旅: 代码已经复制到剪贴板

# 2.5 PATCH

对资源进行部分修改

  • PUT 也可以用于修改资源,但是只能完全替代原始资源,PATCH 允许部分修改。
PATCH /file.txt HTTP/1.1
Host: www.example.com
Content-Type: application/example
If-Match: "e0023aa4e"
Content-Length: 100

[description of changes]
@前端进阶之旅: 代码已经复制到剪贴板

# 2.6 DELETE

删除文件

  • 与 PUT 功能相反,并且同样不带验证机制。
DELETE /file.html HTTP/1.1
<
fe
  • 一 、基础概念
    • 1.1 Web 基础
    • 1.2 URL
    • 1.3 请求和响应报文
      • 1.3.1 请求报文
      • 1.3.2. 响应报文
  • 二、HTTP 方法
    • 2.1 GET
    • 2.2 HEAD
    • 2.3 POST
    • 2.4 PUT
    • 2.5 PATCH
    • 2.6 DELETE
    • 2.7 OPTIONS
    • 2.8 CONNECT
    • 2.9 TRACE
  • 三、HTTP 状态码
    • 3.1 1XX 信息
    • 3.2 2XX 成功
    • 3.3 3XX 重定向
    • 3.4 4XX 客户端错误
    • 3.5 5XX 服务器错误
  • 四、HTTP 首部
    • 4.1 通用首部字段
    • 4.2 请求首部字段
    • 4.3 响应首部字段
    • 4.4 实体首部字段
  • 五、具体应用
    • 5.1 Cookie
      • 5.1.1 创建过程
      • 5.1.2 分类
      • 5.1.3 Set-Cookie
      • 5.1.4 Session 和 Cookie 区别
      • 5.1.5 浏览器禁用 Cookie 的情况
      • 5.1.6 使用 Cookie 实现用户名和密码的自动填写
    • 5.2 缓存
      • 5.2.1 优点
      • 5.2.2 实现方法
      • 5.2.3 Cache-Control 字段
      • 5.2.4 no-cache 指令
      • 5.2.5 no-store 指令
      • 5.2.6 max-age 指令
    • 5.3 持久连接
    • 5.4 管线化处理
    • 5.5 编码
    • 5.6 分块传输编码
    • 5.7 多部分对象集合
    • 5.8 范围请求
    • 5.9 内容协商
    • 5.10 虚拟主机
    • 5.11 通信数据转发
      • 5.11.1 代理
      • 2. 网关
      • 3. 隧道
  • 六、HTTPs
    • 6.1 加密
      • 6.1.1 对称密钥加密
      • 6.1.2 公开密钥加密
      • 6.1.3 HTTPs 采用的加密方式
    • 6.2 认证
    • 6.3 完整性
  • 七、Web 攻击技术
    • 7.1 攻击模式
      • 7.1.1 主动攻击
      • 7.1.2 被动攻击
    • 7.2 跨站脚本攻击
      • 7.2.1 概念
      • 7.2.2 危害
      • 7.2.3 防范手段
    • 7.3 跨站点请求伪造
      • 7.3.1 概念
      • 7.3.2 防范手段
    • 7.4 SQL 注入攻击
      • 7.4.1 概念
      • 7.4.2 攻击原理
      • 7.4.3 危害
      • 7.4.4 防范手段
    • 7.5 拒绝服务攻击
      • 7.5.1 概念
  • 八、GET 和 POST 的区别
    • 8.1 参数
    • 8.2 安全
    • 8.3 幂等性
    • 8.4 可缓存
    • 8.5 XMLHttpRequest
  • 九、各版本比较
    • 9.1 HTTP/1.0 与 HTTP/1.1 的区别
    • 9.2 HTTP/1.1 与 HTTP/2.0 的区别
      • 9.2.1 多路复用
      • 9.2.2 首部压缩
      • 9.2.3 服务端推送
      • 9.2.4 二进制格式

← HTTP协议系列(二)实现数据的双向绑定mvvm-剖析Vue的原理 →