乐趣区

HTTP协议简述

简介

http 协议是我们访问 web 站点所使用的协议,又名“超文本传输协议”,在 OSI 网络模型中处于应用层。

访问网站的过程:

当我们在浏览器正确输入要访问的 URL 后,浏览器首先会对输入的 URL 进行域名查询,查询顺序先是在浏览器缓存,系统 hosts 文件,最后才是本地 dns 服务器进行递归查询一直到查询到相应结果为止

正确的拿到的结果是个 IP 地址,浏览器会对这个 IP 地址的 80 端口发送 HTTP 协议的 GET 请求报文,其中发送请求前会有个 TCP 建立连接 3 次握手的过程,服务器收到请求后返回所请求的资源,然后浏览器在对收到的数据进行处理,渲染出相应界面

HTTP 请求的方法

GET:获取资源
POST: 传输实体数据
PUT: 传输文件
HEAD: 获得报文首部
DELETE: 删除文件
OPTIONS: 询问支持的方法
TRACE: 追踪路径
CONNECT: 要求用隧道协议连接代理

状态码

1xx:指示信息 – 表示请求已接收,继续处理
2xx:成功 – 表示请求已被成功接收、理解、接受
3xx:重定向 – 要完成请求必须进行更进一步的操作
4xx:客户端错误 – 请求有语法错误或请求无法实现
5xx:服务器端错误 – 服务器未能实现合法的请求
常见状态代码、状态描述、说明:
200 OK // 客户端请求成功
204 No content 若服务器拒绝对 PUT、POST 或者 DELETE 请求返回任何状态信息或表示,那么通常采用此响应代码。服务器也可以对 GET 请求返回此响应代码,这表明“客户端请求的资源存在,但其表示是空的”。注意与 304(“Not Modified”) 的区别。204 常常用在 Ajax 应用里。服务器通过这个响应代码告诉客户端:客户端的输入已被接受,但客户端不应该改变任何 UI 元素。
301 Moved Permanently 服务器知道客户端试图访问的是哪个资源,但它不喜欢客户端用当前 URI 来请求该资源。它希望客户端记住另一个 URI,并在今后的请求中使用那个新的 URI。你可以通过这个响应代码来防止由于 URI 变更而导致老 URI 失效
400 Bad Request // 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized // 请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用
403 Forbidden // 服务器收到请求,但是拒绝提供服务
404 Not Found // 请求资源不存在,eg:输入了错误的 URL
500 Internal Server Error // 服务器发生不可预期的错误
503 Server Unavailable // 服务器当前不能处理客户端的请求,一段时间后可能恢复正常

退出移动版