searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

HTTP数据通信简介

2023-07-26 09:18:32
4
0

一、HTTP的请求方式

HTTP(Hypertext Transfer Protocol)中常见的请求方式有 GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE、CONNECT。这些请求方式之间的主要区别如下:

1. GET:用于请求指定资源,一般用于获取数据。GET 请求使用 URL 来传递参数,其特点是请求幂等,即多次执行同一个 GET 请求应该返回相同的结果。

2. POST:用于提交数据,一般用于创建新资源或执行某些操作。POST 请求使用消息体来传递参数,其特点是请求不幂等,即多次执行同一个 POST 请求可能会创建多个资源,导致副作用。

3. PUT:用于更新指定资源,一般用于修改数据。PUT 请求使用消息体来传递参数,其特点是请求幂等,即多次执行同一个 PUT 请求应该产生相同的结果。

4. DELETE:用于删除指定资源,一般用于删除数据。DELETE 请求使用 URL 来传递参数,其特点是请求幂等,即多次执行同一个 DELETE 请求应该产生相同的结果。

5. HEAD:用于获取指定资源的信息,但不返回实体消息体。HEAD 请求与 GET 请求类似,只是不返回实体消息体,通常用于获取资源的元数据。

6. OPTIONS:用于获取有关请求资源的通信选项的信息。OPTIONS 请求通常用于检查服务器支持哪些请求方式和通信选项。

7. TRACE:用于将请求回显回客户端,以便客户端可以查看请求在服务器端如何处理。TRACE 请求通常用于调试和测试。

8. CONNECT:用于通过代理与资源建立隧道。CONNECT 请求通常用于建立安全的 SSL/TLS 连接。

总的来说,GET 和 POST 是最常用的请求方式,GET 用于获取数据,POST 用于提交数据。PUT 和 DELETE 用于更新和删除数据。HEAD、OPTIONS、TRACE、CONNECT 等请求方式相对较少使用,主要用于特定的场景。

注意:

get 和 post区别:

1. get请求无消息体,只能携带少量数据

2. post请求有消息体,可以携带大量数据

携带数据的方式:

get请求将数据放在url地址中

post请求将数据放在消息体中

GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;
GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

二、前后端数据传输常用的方式有以下5种:

  •  url param
  • query
  • form-urlencoded
  • form-data
  • json

1. url param

url param 的数据传输方式是把数据直接放在 url 上,如下面的数据123:

https://baidu.com/test/123

2. query

在url上通过?连接数据,当有多个数据需要传输时,使用&,如下:

https://baidu.com/test?search=abc&id=123

若需要传输非英文数字的特殊字符,比如传输中文时,需要使用encodeURIComponent来进行编码:

encodeURIComponent('名字')

3. form-urlencoded

数据放到body中进行传输,form表单传输数据使用的是这种方式。

其中要传输的数据格式是和query一样的,都是使用&把多个数据连接起来,对于需要传输非英文数字的特殊字符,比如传输中文时,需要使用encodeURIComponent来进行编码。如:

search=abc&id=123

注意:该格式不适合大数据传输,比如文件传输,若是文件传输,请使用form-data

4. form-data

该格式的传输数据放到body中进行传输。

form data的传输数据格式不是通过 & 分隔数据,而是用 --------- + 一串数字做为 boundary 分隔符。因为不是 url 的方式了,所以也不用做 url encode。

form-data 需要指定 content type: multipart/form-data,然后指定 boundary 也就是分割线。

body 里面就是用 boundary 分隔符分割的内容。

很明显,这种方式适合传输文件,而且可以传输多个文件。

但是毕竟多了一些只是用来分隔的 boundary,所以请求体会增大。

 

5. json

该格式的传输数据放到body中进行传输。

form-urlencoded 需要对内容做 url encode,而 form data 则需要加很长的 boundary,两种方式都有一些缺点。如果只是传输 json 数据的话,不需要用这两种。

可以直接指定content type: application/json。

 

 

 

0条评论
0 / 1000
任****贤
1文章数
0粉丝数
任****贤
1 文章 | 0 粉丝
任****贤
1文章数
0粉丝数
任****贤
1 文章 | 0 粉丝
原创

HTTP数据通信简介

2023-07-26 09:18:32
4
0

一、HTTP的请求方式

HTTP(Hypertext Transfer Protocol)中常见的请求方式有 GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE、CONNECT。这些请求方式之间的主要区别如下:

1. GET:用于请求指定资源,一般用于获取数据。GET 请求使用 URL 来传递参数,其特点是请求幂等,即多次执行同一个 GET 请求应该返回相同的结果。

2. POST:用于提交数据,一般用于创建新资源或执行某些操作。POST 请求使用消息体来传递参数,其特点是请求不幂等,即多次执行同一个 POST 请求可能会创建多个资源,导致副作用。

3. PUT:用于更新指定资源,一般用于修改数据。PUT 请求使用消息体来传递参数,其特点是请求幂等,即多次执行同一个 PUT 请求应该产生相同的结果。

4. DELETE:用于删除指定资源,一般用于删除数据。DELETE 请求使用 URL 来传递参数,其特点是请求幂等,即多次执行同一个 DELETE 请求应该产生相同的结果。

5. HEAD:用于获取指定资源的信息,但不返回实体消息体。HEAD 请求与 GET 请求类似,只是不返回实体消息体,通常用于获取资源的元数据。

6. OPTIONS:用于获取有关请求资源的通信选项的信息。OPTIONS 请求通常用于检查服务器支持哪些请求方式和通信选项。

7. TRACE:用于将请求回显回客户端,以便客户端可以查看请求在服务器端如何处理。TRACE 请求通常用于调试和测试。

8. CONNECT:用于通过代理与资源建立隧道。CONNECT 请求通常用于建立安全的 SSL/TLS 连接。

总的来说,GET 和 POST 是最常用的请求方式,GET 用于获取数据,POST 用于提交数据。PUT 和 DELETE 用于更新和删除数据。HEAD、OPTIONS、TRACE、CONNECT 等请求方式相对较少使用,主要用于特定的场景。

注意:

get 和 post区别:

1. get请求无消息体,只能携带少量数据

2. post请求有消息体,可以携带大量数据

携带数据的方式:

get请求将数据放在url地址中

post请求将数据放在消息体中

GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;
GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

二、前后端数据传输常用的方式有以下5种:

  •  url param
  • query
  • form-urlencoded
  • form-data
  • json

1. url param

url param 的数据传输方式是把数据直接放在 url 上,如下面的数据123:

https://baidu.com/test/123

2. query

在url上通过?连接数据,当有多个数据需要传输时,使用&,如下:

https://baidu.com/test?search=abc&id=123

若需要传输非英文数字的特殊字符,比如传输中文时,需要使用encodeURIComponent来进行编码:

encodeURIComponent('名字')

3. form-urlencoded

数据放到body中进行传输,form表单传输数据使用的是这种方式。

其中要传输的数据格式是和query一样的,都是使用&把多个数据连接起来,对于需要传输非英文数字的特殊字符,比如传输中文时,需要使用encodeURIComponent来进行编码。如:

search=abc&id=123

注意:该格式不适合大数据传输,比如文件传输,若是文件传输,请使用form-data

4. form-data

该格式的传输数据放到body中进行传输。

form data的传输数据格式不是通过 & 分隔数据,而是用 --------- + 一串数字做为 boundary 分隔符。因为不是 url 的方式了,所以也不用做 url encode。

form-data 需要指定 content type: multipart/form-data,然后指定 boundary 也就是分割线。

body 里面就是用 boundary 分隔符分割的内容。

很明显,这种方式适合传输文件,而且可以传输多个文件。

但是毕竟多了一些只是用来分隔的 boundary,所以请求体会增大。

 

5. json

该格式的传输数据放到body中进行传输。

form-urlencoded 需要对内容做 url encode,而 form data 则需要加很长的 boundary,两种方式都有一些缺点。如果只是传输 json 数据的话,不需要用这两种。

可以直接指定content type: application/json。

 

 

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
1
0