目录
1. HTTP方法有哪些?分别什么功能?
- GET:用来获取服务器上资源,是幂等的。
- POST:用来 更新 或 创建 服务器上的资源,是非幂等的
- PUT:用来向指定位置上传资源
- DELETE:用来删除指定的资源
- HEAD:与GET方法类似,只是不返回报文主体
- OPTIONS:返回针对特定资源所支持的HTTP请求方法
- CONNECT:要求用隧道协议连接服务器
- TRACE:追踪通信路径,主要用于测试或诊断
2. GET和POST区别
- GET 只是一次 HTTP请求, POST 先发请求头再发请求体, 实际上是两次请
求。 - GET一般用来获取服务器上资源,不会改变服务器上的资源;POST一般用来更新服务器上的资源,会对服务器资源进行改变。
- GET是幂等的,读取同一个资源,总是得到相同的数据,而POST不是幂等的,因为每次请求都会对资源产生影响。
- GET将请求数据放在url地址中,而POST请求参数被包装到请求体中,POST比GET的安全性高。
- GET请求的长度受限于浏览器或服务器对URL长度的限制,允许发送的数据量比较小,而POST请求则是没有大小限制的。
3. HTTP状态码有哪几种?
- 1** 消息,表示请求已被接受,正在处理,是临时的响应
- 2** 成功,表示请求被成功接收并处理完毕。
- 3** 重定向,表示需要客户端采取进一步的操作才能完成请求
- 4** 客户端错误,表示服务器无法处理请求
- 5** 服务器错误,表示服务器在处理请求的过程中发生了错误
4. HTTP常见的状态码?
- 100:表示请求已被接受,客户端可以继续发送请求或者忽略这个响应。
- 200:请求被正常处理
- 204:请求被受理,但返回的响应报文不包含实体主体(一般在只需要从客户端往服务器发送信息, 而不需要返回数据时使用。)
- 206:表示客户端进行了范围请求,响应报文包含指定范围的内容。
- 301:永久性重定向。请求的资源已被分配了新的URI。
- 302:临时重定向。请求的资源已被分配了新的URI(是临时性的)。
- 303:临时重定向,要求客户端应该采用 GET 方法 获取资源。
- 304:如果请求报文首部包含一些条件, 例如:If-Match, If-ModifiedSince, If-None-Match, If-Range, If-Unmodified-Since, 如果不满足条件, 则服务器会 返回 304 状态码。
- 307::临时重定向,同时要求浏览器不会 把重定向请求的 POST 方法改成 GET 方法。
- 400:请求语法有误,服务器无法识别
- 401:请求需要有认证信息
- 403:请求被拒绝
- 404:无法找到对应资源
- 405:请求中的方法被禁止
- 500:服务器内部错误
- 503:服务器正忙
5. HTTP报文格式?
- HTTP请求报文主要由(请求行+请求头+空行+请求正文)组成
- HTTP响应报文主要由(状态行+响应头+空行+响应正文)组成
请求行:包含用于请求的方法,请求URI和HTTP版本
请求头(首部字段):包含若干首部字段,格式为“首部字段名:字段值”,服务端据此来获取客户端的信息。
状态行:有三个内容:HTTP版本、状态码、解释状态码的短语。
6. HTTP请求头参数(详细见博客)
- Accept:客户端能够接收的内容类型
- Accept-Encoding:浏览器可以接受的内容编码
- Accept-Language:浏览器可以支持的语言集
- Accept-Charset:浏览器可接受的字符集
- Cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器
- Host:指明请求的主机名