HTTP状态码、请求及响应


1.HTTP状态码

状态码:由3位数字组成,第一个数字定义了响应的类别
在这里插入图片描述

1xx:指示信息,表示请求已接收,继续处理

2xx:成功,表示请求已被成功接受,处理。

  • 200 OK:客户端请求成功
  • 204 No Content:无内容。服务器成功处理,但未返回内容。一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况。不会刷新页面。
  • 206 Partial Content:服务器已经完成了部分GET请求(客户端进行了范围请求)。响应报文中包含Content-Range指定范围的实体内容

3xx:重定向

  • 301 Moved Permanently:永久重定向,表示请求的资源已经永久的搬到了其他位置。
  • 302 Found:临时重定向,表示请求的资源临时搬到了其他位置
  • 303 See Other:临时重定向,应使用GET定向获取请求资源。303功能与302一样,区别只是303明确客户端应该使用GET访问
  • 307 Temporary Redirect:临时重定向,和302有着相同含义。POST不会变成GET
  • 304 Not Modified:表示客户端发送附带条件的请求(GET方法请求报文中的IF…)时,条件不满足。返回304时,不包含任何响应主体。- 虽然304被划分在3XX,但和重定向一毛钱关系都没有

4xx:客户端错误

  • 400 Bad Request:客户端请求有语法错误,服务器无法理解。
  • 401 Unauthorized:未授权。请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
  • 403 Forbidden:服务器收到请求,但是拒绝提供服务
  • 404 Not Found:请求资源不存在。比如,输入了错误的url
  • 415 Unsupported media type:不支持的媒体类型

5xx:服务器端错误,服务器未能实现合法的请求。

  • 500 Internal Server Error:服务器发生不可预期的错误。
  • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
  • 502 Bad Gateway:网关错误。作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
  • 504 Gateway Time-out:网关响应超时。作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。

2.HTTP请求报文由3部分组成(请求行+请求头+请求体)

在这里插入图片描述

1)请求行:
  • 例如:POST /chapter17/user.html HTTP/1.1

  • 格式:请求方式 资源路径 协议/版本

  • 请求行必须在http请求格式的第一行。

get请求:

  • 将请求参数追加在url后面,不安全

  • url长度限制get请求方式数据的大小

  • 没有请求体

  • 一般的HTTP请求大多都是GET。

  • 常见get请求:
    地址栏直接访问、<a href="">、<img src="">等

post请求:

  • 请求参数在请求体处,较安全。

  • 请求数据大小没有显示

  • 只有表单设置为method=“post”才是post请求,其他都是get请求

HEAD请求:

  • HEAD跟GET相似,不过服务端接收到HEAD请求时只返回响应头,不发送响应内容。所以,如果只需要查看某个页面的状态时,用HEAD更高效,因为省去了传输页面内容的时间。

DELETE请求:

  • 删除某一个资源。

OPTIONS请求

  • 用于获取当前URL所支持的方法。若请求成功,会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。

PUT请求:

  • 把一个资源存放在指定的位置上。

  • 本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。

TRACE请求:

  • 回显服务器收到的请求,主要用于测试或诊断。

CONNECT请求

  • CONNECT方法是HTTP/1.1协议预留的,能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接与非加密的HTTP代理服务器的通信。
2)请求头
  • 例如:Host: 39.108.107.149:8080

  • 请求头从第二行开始,到第一个空格结束。请求头和请求体之间存在一个空格(如下)

    POST http://39.108.107.149:8080/vk/app/rest/ddp/iModelServiceImpl/findModelByType HTTP/1.1
    User-Agent: Fiddler
    Host: 39.108.107.149:8080
    Content-Length: 11
     
    name=城市
    
  • 请求头通常以键值对{key:value}方式传递数据。

  • key为规范的固定值

  • value为key对应的取值,通常是一个值,可能是一组。

get和post的区别

  • 1.相对post请求是安全的,因为get只是查询数据功能,而post是要更新数据的

  • 2.get请求参数放在url后,post放在http请求主体里面

  • 3.get请求可以被缓存,历史记录里面有记录,而post请求不可以被缓存,历史记录里查询不到

  1. HTTP响应报文

3.HTTP的响应报文也由三部分组成(响应行+响应头+响应体)

在这里插入图片描述

响应行:
①报文协议及版本;

例如:HTTP/1.1 200 OK

响应头:

③响应报文头,也是由多个属性组成;

响应头也是用键值对k:v

服务器通过响应头来控制浏览器的行为,不同的头浏览器操作不同

响应体

④响应报文体,服务器发送给浏览器的正文,即我们真正要的“干货” ;

响应体,响应体是服务器回写给客户端的页面正文,浏览器将正文加载到内存,然后解析渲染 显示页面内容

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值