(1)HTTP是什么?HTTP常见的状态码有哪些?
HTTP是一种用于传输超文本数据的应用层协议,可以传输HTML、CSS、TXT等等文件。HTTP通过在客户端和服务器之间发送请求和响应来传输数据,常见于web应用(浏览器、网站、超链接等等)。
HTTP常见的状态码:(这些状态码包含在HTTP响应中,告知客户端请求的处理情况,有助于识别和解决在Web应用中可能出现的问题)
200:OK。服务器已成功处理了请求。
301:Moved Permanently。请求的网页已永久移动到新位置。 服务器返回此响应时,会自动将请求者转到新位置。
400:Bad Request。客户端请求有语法错误,不能被服务器所理解。
404:Not Found。服务器找不到请求的网页。
500:Internal Server Error。服务器遇到错误,无法完成请求。
(2)HTTP常用的请求方式有哪些?GET请求和POST请求有什么区别?
- GET:用于从服务器获取资源,不对服务器上的资源进行修改,类似于读取操作。GET请求将参数包含在URL中,因此在浏览器中刷新页面或者通过链接访问时,会将请求参数暴露在URL中,不适合传输敏感信息。
- POST:用于向服务器提交数据,通常用于提交表单数据或者上传文件等操作,类似于写入操作。POST请求将参数包含在请求体中,不会暴露在URL中,适合传输敏感信息。
- PUT:用于向服务器上传资源,通常用于更新资源。PUT请求要求客户端提供完整的资源数据,用于替换服务器上的资源。
- DELETE:用于删除服务器上的资源。
- PATCH:用于对资源进行部分更新。
- HEAD:类似于GET请求,但服务器只返回头部信息,不返回实体内容,用于获取资源的相关信息,比如资源的大小、类型、修改时间等等。
GET请求和POST请求的区别在于:
- 参数位置:GET请求将参数包含在URL中,而POST请求将参数包含在请求体中。
- 安全性:GET请求的参数暴露在URL中,不适合传输敏感信息;而POST请求的参数在请求体中,安全性更高。
- 请求长度限制:GET请求的参数长度受限于URL长度限制,而POST请求的参数长度通常没有限制。
- 缓存处理:GET请求可被缓存,POST请求不能被缓存。
- 幂等性(本质区别):对于HTTP协议中的GET请求,通常是幂等的,因为无论请求多少次,都只是获取资源,不会对资源本身进行修改,因此返回的结果应该是相同的。而对于POST请求,通常不是幂等的,因为POST请求可能会修改服务器上的资源,重复执行可能会导致资源状态的改变。(幂等性是指对同一资源的多次请求,无论请求次数是一次还是多次,对资源的状态改变都是一致的,即具有相同的副作用)