且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

HTTP协议请求方法和状态码介绍

更新时间:2022-09-04 09:47:09

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/ ,会跳转到京东首页。


HTTP协议请求方法和状态码介绍


302(Found)当我们去访问一个url的时候,服务器要我们去访问另一个资源,这个时候浏览器就会继续发一个http,请求新的资源。比如在未登录状态下,直接访问需要登录才能访问的页面,会被服务器返回302,跳转到登录页面:


HTTP协议请求方法和状态码介绍


  • 404(Not Found )找不到资源
  • 400(Bad Request)   表示客户端请求有语法错误,不能被服务器正确的解析
  • 401(Unauthorized)    禁止访问/未认证
  • 403(Forbidden)表示发送的请求被服务器拒绝了
  • 500(Internal Server Error)服务器内部错误,一般对应后台会有xxxException的log输出
  • 503(server Unavailable)表示服务暂不可用,可能在维护或者负载过高