HTTP相关整理笔记

Apr 23, 2016

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是互联网上应用最为广泛的一种网络协议,本文作为常用知识的笔记

GitHub相关文章:http-decision-diagram

HTTP报文简介

HTTP报文是简单的格式化数据块,每条报文都包含一条来自客户端的请求或服务端的响应,它由3部分组成:
  1. 对报文进行描述的起始行(start line)::HTTP/1.1 200 OK
  2. 包含属性的首部(header)块 ::Conten-type: text/html 和 Content-length: 20等
  3. 可选的、包含数据主体的(body)部分 :: hello world!
HTTP报文可以分为两类:
  1. 请求报文(request message)
  2. 响应报文(response message)
介绍下HTTP报文的几个部分:

常用的HTTP方法

Method Description Body
GET 从服务器获取一份文档 不包含
POST 向服务器发送需要处理的数据 包含
HEAD 只从服务器获取文档的首部 不包含
PUT 将请求的主体部分存储在服务器上 包含
TRACE 对可能经过代理服务器传送到服务器上去的报文进行追踪 不包含
OPTIONS 决定可以在服务器上执行哪些方法 不包含
DELETE 从服务器上删除一份文档 不包含

状态码分类

整体范围 已定义范围 分类
100 ~ 199 100 ~ 101 信息提示
200 ~ 299 200 ~ 206 成功
300 ~ 399 300 ~ 305 重定向
400 ~ 499 400 ~ 415 客户端错误
500 ~ 599 500 ~ 505 服务器错误

HTTP状态码速查(维基百科

1xx消息 (这一类型的状态码,代表请求已被接受,需要继续处理。这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动。)
2xx成功 (这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。)
3xx重定向 (这类状态码代表需要客户端采取进一步的操作才能完成请求。)
4xx客户端错误 (这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。这些状态码适用于任何请求方法。浏览器应当向用户显示任何包含在此类错误响应中的实体内容。)
5xx服务器错误 (这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。)

HTTP首部

Content-Type
Cache-Control
Referer
User-Agent
Date
X-Requested-With
Access-Control-Allow-Origin
Content-Security-Policy
关于响应头信息在HTML中的实现
关于js可以干预的HTTP请求首部