HTTP协议:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。
HTTP请求方法:
GET 和 POST区别:
区别:
GET请求无消息体,只能携带少量数据
POST请求有消息体,可以携带大量数据
携带数据的方式:
GET请求将数据放在url地址中(GET:请求的参数是作为一个key/value对的序列附加到URL上)
POST请求将数据放在消息体中
(POST:请求的参数在http的(名为entity body)传输,用来传输Body信息,其参数也是作为key/value对传输。
Content-Type:application/json;charset=UTF-8)
GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;
GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
GET 和 POST的理解:
1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。
2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。
3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。
4、DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。
就像前面所讲的一样,既然PUT和POST操作都是向服务器端发送数据的,那么两者有什么区别呢?POST主要作用在一个集合资源之上的(url),而PUT主要作用在一个具体资源之上的(url/xxx),通俗一下讲就是,如URL可以在客户端确定,那么可使用PUT,否则用POST。
综上所述,我们可理解为以下:
1、POST /url 创建(增)
2、DELETE /url/xxx 删除 (删)
3、PUT /url/xxx 更新(改)
4、GET /url/xxx 查看(查)
HTTP请求的状态码:
五种类型:
1xx:信息响应类,表示接收到请求并且继续处理
2xx:处理成功响应类,表示动作被成功接收、理解和接受
3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理
4xx:客户端错误,客户请求包含语法错误或者是不能正确执行
5xx:服务端错误,服务器不能正确执行一个正确的请求
HTTP常见的状态码:
1、2XX Success 200 OK 请求被成功处理。
2、3XX Redirection
301 Movied Permanently 永久性重定向。该状态码表示请求的资源已经被分配了新的URI,并且以后使用资源现在所指的URI。并且根据请求的方法有不同的处理方式
302 Found 临时性重定向。该状态码表示请求的资源已被分配了新的URI,希望用户本次能使用新的URI访问。
304 Not Modified:该资源在上次请求之后没有任何修改。这通常用于浏览器的缓存机制。
3、4XX Client Error
400 Bad Request 表示该请求报文中存在语法错误,导致服务器无法解析。
401 Unauthorized 客户端无权访问该资源。这通常会使得浏览器要求用户输入用户名和密码,以登录到服务器
403 Forbidden 客户端未能获得授权。这通常是在401之后输入了不正确的用户名或密码。
404 Not Found 请求资源错误,常见URL错误。--在指定的位置不存在所申请的资源。
4、5XX Server Error
500 Internal Server Error 服务器端在执行请求时发生错误
503 Service Unavailable 服务器无法处理请求
参考文档:
1、http://www.runoob.com/http/http-methods.html
2、https://www.cnblogs.com/the-tops/p/5640357.html
3、https://www.cnblogs.com/testcoffee/p/6295970.html