这是我参与「第四届青训营 」笔记创作活动的第7天
一、什么是HTTP?
HTTP就是超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
当我们在地址栏输入了一个地址后,发生了什么?浏览器处理了我们输入的信息,然后得到了完整的请求地址,通过内核发起了对应的请求,请求被服务器接受并且作出响应,再把数据传输到服务器中。
二、HTTP发展
三、报文分析
HTTP协议中的请求,大概率指的就是HTTP报文。
请求报文包含元素:
Method、 URL、HTTP协议版本号、 headers、body
响应报文包含元素:
HTTP 协议版本号、 状态码、 状态信息、body
在请求和相应之间有着两种API: 一种可用于在
user agent和服务器之间交换数据; 另一种则是单向api,允许服务器使用 HTTP 作为传输机制向客户端发送事件
以下是常见的请求类型( Method)
- GET: 请求一个指定资源的表示形式使用GET的请求应该只被用于 获取数据 .
- HEAD: 类似GET请求的响应相同的响应,但没有响应体
- POST: 用于将实体 提交 到指定的资源,通常导致在服务器上的状态变化或副作用
- PUT: 用请求有效载荷替换目标资源的所有当前表示
- DELETE: 删除指定的资源
- CONNECT: 建立一个到由目标资源标识的服务器的隧道。
- OPTIONS: 允许客户端查看服务器,用于描述目标资源的通信选项。
- TRACE: 回显服务器收到的请求,主要用于测试和诊断
四、请求行类型
Safe(安全的):不会修改服务器数据的方法
- GET
- HEAD
- OPTIONS
ldempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的。
- GET
- HEAD
- OPTIONS
- PUT
- DELETE
五、状态码
状态码
- 301 资源(网页)被永久转到其他URL
- 302 临时跳转
- 404 找不到网页
- 403 被静止
- 401 未授权
- 500 内部错误
- 504 网关或服务器无法在规定的时间内获得想要的响应