http post参数传递的两种方式

首先说一下http请求,包括三部分:请求行,请求头,请求体(http post有,http get没有)。

发送请求到http server的时候,这三部分里面都可以传递参数。通常我们不考虑请求头里传递参数,这也不标准。http get请求只能通过请求行来传递参数,即通过"?user=abc&pwd=123"这样的形式,通过浏览器访问,容易被看见,而且长度也受到限制。所以才有了http post请求,在请求体里面带参数,参数的形式就很多样了,这里不谈。那么http post请求可不可以像http get请求一样通过请求行来传递参数呢?答案当然是可以的。而且对于http post请求,可以同时通过请求行和请求体传递参数。

如果使用curl发送http 请求,具体形式:

1. http get请求,在请求行带参数

curl https://networktraversal.googleapis.com/iceconfig?key=4080218913

2. http post请求,在请求体带参数

curl -d "key=4080218913" https://networktraversal.googleapis.com/iceconfig

Content-Type为:application/x-www-form-urlencoded

另一种为:multipart/form-data,这里没用到。

3. http post请求,在请求行带参数

curl -X POST https://networktraversal.googleapis.com/iceconfig?key=4080218913

此时,请求体为空。

4. http post请求,在请求行和请求体带参数

curl -d "user=abc&pwd=123" https://networktraversal.googleapis.com/iceconfig?key=4080218913

---------------------------------------------------------------------------------------------------------------------------------

那么http server端如何区分参数是在请求行还是请求体里面的呢?

它应该在两个地方都作解析。


版权声明:本文为qiuchangyong原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。