返回结果的http状态码
借助状态码,用户可以知道服务器端是否正常处理了请求。
状态码由三位数字和原因短语组成。
状态码的类别
1xx:接收的请求正在处理
2xx:请求正常处理完毕
3xx:重定向,需要进行附加操作以完成请求
4xx:客户端错误码
5xx:服务器服务码
2xx
- 200ok 请求正常处理
- 204 no content 服务器接收的请求已经成功处理,但不会返回任何实体的主体。 一般在只需要从客户端往服务器发送信息,而对客户端不需要发送信息的情况下使用
- 206 partial content 进行范围请求并处理成功
3xx重定向
- 301Moved permanently 永久性重定向
请求的资源uri 发生了改变,也就是说,如果把资源对应的uri保存为书签了,这时应该按照location首部字段提示的uri重新保存。(此时请求是无法得到资源的) - 302 Found 临时重定向 和301类似,资源的uri更换了,但不是被永久移动,只是临时性质的。比如用户把uri保存为书签,但不会像301一样去更新书签,而是仍旧保留返回302状态码的页面对应的uri(会返回)
- 303 see other 表示请求的资源存在另一个uri,应使用GET方法定向获取请求的资源,明确表示使用GET,这是与302的一个区别。
- 304 not modified 客户端发送附带条件的请求时,服务器端允许访问资源,但未满足条件,返回该状态码时,不包含任何响应的主体部分。
- 307 temporary redirect 与302有相同的含义
4XX 客户端错误
- 400 bad request 存在语法错误 浏览器会像200一样对待该状态码(这里的意思是表示客户端认为成功了吗?)
- 401 unauthorized 需要认证
- 403 forbidden 禁止访问 可返回拒绝的理由
- 404 not found 无法找到请求资源或拒绝请求并不想说明理由
5xx 服务器错误
- 500 internal server error 服务器执行请求时发生错误
- 503 service unavailable 服务器超负荷,或正在停机维修。
以下内容刚刚写完了,结果没保存,只好再来一遍(难过),就当再加深一遍印象。。。(希望CSDN来一个返回时提示是否保存为草稿的功能)
与http协作的web 服务器
通过虚拟主机,可以实现一个服务器代理多个web站点,为了区分,此时需要在请求报文中,host首部内完整指定主机名或域名的uri。
通讯数据转发程序 :代理,网关,隧道。
可以将请求转发给通信线路的下一站服务器,并能接收从那台服务器发送的响应再转发给客户端。
代理服务器
转发请求或响应时,会追加写入via首部信息
按两种基准分类:一种是是否使用缓存(缓存代理),一种是是否修改报文(透明代理)
网关
可以使通信线路上的服务器提供非http协议,还能提高通信的安全性。
隧道
和远距离服务器安全通信。隧道本身是透明的
缓存机制
缓存是指代理服务器或客户端本地磁盘内保存的资源副本,利用缓存可以减少对源服务器的访问,节省了通信流量和通信时间。
客户端可以就近从缓存服务器上获取资源,或从本地磁盘中读取(客户端缓存称为临时网络文件)
但要考虑缓存的时效性,若判定失效,需要再次请求资源