今天笔试选择题问到HTTP请求方法,一时间想不起来,所以来总结一下。
http协议特点
①通信流程:断开式(无状态)
断开式:http 协议每次响应完成后,会断开与客户端的连接
无状态:由于服务器断开了之前的连接,就无法知晓连接间的关系
②内容格式:消息头和消息体
http请求方法
根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
HTTP1.1 新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
序号 | 方法 | 描述 |
---|---|---|
1 | GET | 请求指定的页面信息,并返回实体主体。 |
2 | HEAD | 类似于 get 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
3 | POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和 / 或已有资源的修改。 |
4 | PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
5 | DELETE | 请求服务器删除指定的页面。 |
6 | CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
7 | OPTIONS | 允许客户端查看服务器的性能。 |
8 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
注意:
1)方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码 405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码 501(Not Implemented)。
2)HTTP 服务器至少应该实现 GET 和 HEAD/POST 方法,其他方法都是可选的,此外除上述方法,特定的 HTTP 服务器支持扩展自定义的方法。
get 和 post 区别
面试中一般会问到这个问题
区别:
get 请求无消息体,只能携带少量数据
post 请求有消息体,可以携带大量数据
携带数据的方式:
get 请求将数据放在 url 地址中
post 请求将数据放在消息体中
GET 请求请提交的数据放置在 HTTP 请求协议头中,而 POST 提交的数据则放在实体数据中;
GET 方式提交的数据最多只能有 1024 字节,而 POST 则没有此限制。