本篇文章主要讲 HTTP 响应.想要知道什么是响应,那么首先就要在知道什么是状态码,接下来,让我们先了解一下状态码的相关内容.
认识 "状态码" (status code)
状态码表示访问一个页面的结果. (是访问成功, 还是失败, 还是其他的一些情况..).
状态码可以程序员设置,如果我们未设置,客户端/浏览器就会根据我们的响应自动设置.
我们知道了状态码,那么状态码怎么看呢,他出现在哪里呢,下图是状态码出现的位置:
以下为常见的状态码.
200 OK
这是一个最常见的状态码, 表示访问成功
404 Not Found
没有找到资源,资源不存在
浏览器输入一个 URL, 目的就是为了访问对方服务器上的一个资源. 如果这个 URL 标识的资源不存 在, 那么就会出现 404
403 Forbidden
访问被拒绝
有的页面通常需要用户具有一定的权限才能访问(登陆后才能访问). 如果用户没有登陆 直接访问, 就容易见到 403.
405 Method Not Allowed
使用了服务器不支持的方法.
前面我们已经学习了 HTTP 中所支持的方法, 有 GET, POST, PUT, DELETE 等.
但是对方的服务器不一定都支持所有的方法(或者不允许用户使用一些其他的方法).
500 Internal Server Error
服务器出现内部错误.
一般是服务器的代码执行过程中遇到了一些特殊情况(服务器异常崩溃)会产生这个 状态码.
504 Gateway Timeout
服务器超时
当服务器负载比较大的时候, 服务器处理单条请求的时候消耗的时间就会很长, 就可能会导致出现超时的 情况.一般在双十一这种人流量在短时间内爆炸的情况下会发生.
302 Move temporarily
临时重定向.
呼叫转移,如果你有一个新的手机号,当你去办理了呼叫转移业务的话,那么当有人拨通你的之前的号码的时候,就会发生呼叫转移.
301 Moved Permanently
永久重定向.
当浏览器收到这种响应时, 后续的请求都会被自动改成新的地址.
相当于你搬了新家,以后都不会回来之前的地方了,以后都在新家的位置.
状态码小结:
认识响应 "报头" (header)
响应报头的基本格式和请求报头的格式基本一致. 类似于 Content-Type , Content-Length 等属性的含义也和请求中的含义一致.
Content-Type 响应中的 Content-Type 常见取值有以下几种:
- text/html : body 数据格式是 HTML
- text/css : body 数据格式是 CSS
- application/javascript : body 数据格式是 JavaScript
- application/json : body 数据格式是 JSON
认识响应 "正文" (body)
正文的具体格式取决于 Content-Type.