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

简介: HTTP请求方法、状态码和Header是相互配合一起工作的,客户端通过HTTP的方法告诉服务器要执行什么动作,服务器通过状态码来告诉客户端动作是否执行成功。接下来让我们一起来了解一下这块相关的一些内容。

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


微信图片_20220113225243.png


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


微信图片_20220113225245.png


  • 404(Not Found )找不到资源
  • 400(Bad Request)   表示客户端请求有语法错误,不能被服务器正确的解析
  • 401(Unauthorized)    禁止访问/未认证
  • 403(Forbidden)表示发送的请求被服务器拒绝了
  • 500(Internal Server Error)服务器内部错误,一般对应后台会有xxxException的log输出
  • 503(server Unavailable)表示服务暂不可用,可能在维护或者负载过高
相关文章
|
17天前
|
Java
java原生发送http请求
java原生发送http请求
|
24天前
|
网络协议 Linux iOS开发
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
55 1
|
6天前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
20 8
|
1天前
|
JSON 数据格式 索引
ES 查看索引的属性的http请求
在 Elasticsearch 中,要查看索引的属性,可以通过发送 HTTP 请求来执行以下操作: 1. **获取索引的映射(Mapping)**: 可以使用 `GET` 请求访问 Elasticsearch 的 `_mapping` 端点来获取特定索引的映射信息。 示例请求: ```http GET http://<elasticsearch_host>:<port>/<index_name>/_mapping ``` 2. **获取索引的设置(Settings)**: 可以使用 `GET` 请求访问 Elasticsearch 的 `_setting
|
2天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
9 3
|
4天前
|
Java
Servlet 教程 之 Servlet HTTP 状态码 3
该Servlet教程聚焦于HTTP状态码,示例展示如何向客户端发送407错误,提示&quot;Need authentication!!!&quot;. 类名为`showError`的Servlet扩展自`HttpServlet`,重写`doGet`和`doPost`方法。当遇到GET或POST请求时,它会设置HTTP状态码为407并附带错误信息。
11 2
|
8天前
|
缓存 网络协议
【计算机协议】第一章——HTTP协议详解
【计算机协议】第一章——HTTP协议详解
|
9天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
10天前
|
安全 网络安全 开发工具
对象存储oss使用问题之flutter使用http库进行post请求文件上传返回400如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
33 1