HTTP请求方法、状态码和Header是相互配合一起工作的,客户端通过HTTP的方法告诉服务器要执行什么动作,服务器通过状态码来告诉客户端动作是否执行成功。接下来让我们一起来了解一下这块相关的一些内容。
1、什么是url、uri
我们每天都在使用浏览器上网,那么,浏览器地址栏的url到底是什么呢?
URL全称是Uniform Resource Locator(统一资源定位符),用于完整的描述Internet上某一处资源的地址。
URI的全称是Uniform Resource Identifier(统一资源标识符),用来标识资源。
2、HTTP请求方法有哪些
常见的HTTP请求方法如下所示:
方法 | 描述 |
GET | 请求指定的页面信息并返回实体主体 |
HEAD | 类似GET请求,只不过返回的响应中没有具体内容,用于获取报头 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者文件上传),数据被包含在请求体中。POST请求可能会导致新的资源的建立或者对已有资源的修改 |
PUT | 从客户端向服务器传送的数据取代指定文档的内容 |
DELETE | 请求服务器删除指定的页面 |
常见面试题:get和post请求的区别?
1、get请求是明文传输,请求参数会跟在url后面,以问号分割url和传输数据,参数之间用&相连,post请求是把提交的数据放到请求体的body中,用户不能直接看到,相对而言安全点
2、get对传输的数据长度有限制,post没限制
3、get请求可以被浏览器自动缓存,post不能缓存
4、get请求在浏览器上前进/后退是无害的,post请求一旦回退则需要重新提交表单
5、get请求会在发送过程中产生一个tcp数据包,post在提交过程中会产生两个tcp数据包(据说有的浏览器只产生一个包)--这点在面试的时候慎用,不熟悉的东西最好不要说,免得被盯着这个深问
6、get请求可以添加到浏览器书签,post请求不能
7、对参数的数据类型,GET只接受ASCII码,而POST没有限制
3、HTTP状态码
每一个http请求的响应报文都会携带有一个状态码,这个状态码就是http status code,用来告知客户端此次请求是否成功。这个状态码在做接口测试中也经常用来作为其中的一个断言。
状态码一般有以下几类:
-
1XX 信息提示,表示请求已被成功接收,继续处理
-
2XX 成功,表示请求已被成功接收、理解、接受
-
3XX 重定向,要完成请求,必须进行更进一步的处理
-
4XX 客户端错误,请求中有语法错误或请求无法实现
-
5XX 服务器错误
常见的状态码:
-
200 请求响应成功,这个最常见
-
301(Moved Permanently) 服务器返回301的时候,表示请求的网页已经永久性地转移到了另一个地址,比如 访问 http://www.360buy.com/ ,会跳转到京东首页。
-
302(Found)当我们去访问一个url的时候,服务器要我们去访问另一个资源,这个时候浏览器就会继续发一个http,请求新的资源。比如在未登录状态下,直接访问需要登录才能访问的页面,会被服务器返回302,跳转到登录页面:
-
404(Not Found )找不到资源
-
400(Bad Request) 表示客户端请求有语法错误,不能被服务器正确的解析
-
401(Unauthorized) 禁止访问/未认证
-
403(Forbidden)表示发送的请求被服务器拒绝了
-
500(Internal Server Error)服务器内部错误,一般对应后台会有xxxException的log输出
-
503(server Unavailable)表示服务暂不可用,可能在维护或者负载过高
往期推荐