本篇文章收集了一些HTTP1.1的基本知识点,内容多有误,仅供参考。
HTTP 1.1
HTTP 1.1看懂了这个协议HTTP协议的知识就掌握了80%了。
下面是我扣的HTTP1.1的协议中的重点。(为什么是HTTP1.1,因为1.0太老,1.2和2.0对协议内容没有大改动)
HTTP请求的组成
- Method
- Path
- Version of HTTP
- Headers
- Body
Method 请求方式
- GET 请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据.
- HEAD 请求一个与GET请求的响应相同的响应,但没有响应体.
- POST 用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用.
- PATCH 于对资源应用部分修改。
- DELETE 删除指定的资源。
- PUT 用请求有效载荷替换目标资源的所有当前表示。
- CONNECT 建立一个到由目标资源标识的服务器的隧道。
- OPTIONS 用于描述目标资源的通信选项。
- TRACE 沿着到目标资源的路径执行一个消息环回测试。
Path 路径
资源的地址
HTTP协议的版本
当前主流版本 http1.1 http1.2 http2.0
Header 请求头
很多很多字段,就不搬了看详情吧。设置Content-Type是用的MIME标准还是要看看
HTTP响应的组成
- Version of HTTP
- Status Code
- Status Message
- Headers
- Body
状态码 & 状态消息
HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599)
常见:
-
200 OK
请求成功。成功的含义取决于HTTP方法:
GET:资源已被提取并在消息正文中传输。
HEAD:实体标头位于消息正文中。
POST:描述动作结果的资源在消息体中传输。
TRACE:消息正文包含服务器收到的请求消息 -
400 Bad Request
1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。
2、请求参数有误。 -
403 Forbidden
服务器已经理解请求,但是拒绝执行它。与 401 响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个 HEAD 请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。当然服务器也可以返回一个 404 响应,假如它不希望让客户端获得任何信息。 -
404 Not Found
请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。 -
405 Method Not Allowed
请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表。 鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。 -
408 Request Timeout
请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。客户端可以随时再次提交这一请求而无需进行任何更改。 -
500 Internal Server Error
服务器遇到了不知道如何处理的情况。 -
501 Not Implemented
此请求方法不被服务器支持且无法被处理。只有GET和HEAD是要求服务器支持的,它们必定不会返回此错误代码。 -
502 Bad Gateway
此错误响应表明服务器作为网关需要得到一个处理这个请求的响应,但是得到一个错误的响应。 -
503 Service Unavailable
服务器没有准备好处理请求。 常见原因是服务器因维护或重载而停机。 请注意,与此响应一起,应发送解释问题的用户友好页面。 这个响应应该用于临时条件和 Retry-After:如果可能的话,HTTP头应该包含恢复服务之前的估计时间。 网站管理员还必须注意与此响应一起发送的与缓存相关的标头,因为这些临时条件响应通常不应被缓存。 -
504 Gateway Timeout
当服务器作为网关,不能及时得到响应时返回此错误代码。 -
505 HTTP Version Not Supported
服务器不支持请求中所使用的HTTP协议版本。