相关疑难解决方法(0)

不同浏览器中URL的最大长度是多少?

不同浏览器中URL的最大长度是多少?浏览器有什么不同?

HTTP协议是否要求它?

browser url http

4676
推荐指数
18
解决办法
119万
查看次数

查询字符串的最大可能长度是多少?

它依赖于浏览器吗?另外,不同的Web堆栈对于从请求中获取的数据量有不同的限制吗?

browser max query-string

523
推荐指数
2
解决办法
31万
查看次数

如何设计RESTful搜索/过滤?

我目前正在设计和实现PHP中的RESTful API.但是,我没有成功实施我的初始设计.

GET /users # list of users
GET /user/1 # get user with id 1
POST /user # create new user
PUT /user/1 # modify user with id 1
DELETE /user/1 # delete user with id 1
Run Code Online (Sandbox Code Playgroud)

到目前为止标准相当,对吗?

我的问题是第一个问题GET /users.我正在考虑在请求正文中发送参数来过滤列表.这是因为我希望能够在不获取超长URL的情况下指定复杂的过滤器,例如:

GET /users?parameter1=value1&parameter2=value2&parameter3=value3&parameter4=value4
Run Code Online (Sandbox Code Playgroud)

相反,我希望有类似的东西:

GET /users
# Request body:
{
    "parameter1": "value1",
    "parameter2": "value2",
    "parameter3": "value3",
    "parameter4": "value4"
}
Run Code Online (Sandbox Code Playgroud)

它更具可读性,为您提供设置复杂过滤器的绝佳机会.

无论如何,file_get_contents('php://input')没有返回请求的请求体GET.我也尝试过http_get_request_body(),但我正在使用的共享主机没有pecl_http.不确定它会有所帮助.

我发现了这个问题,并意识到GET可能不应该有一个请求体.这有点不确定,但他们建议不要这样做.

所以现在我不知道该怎么做.你如何设计RESTful搜索/过滤功能?

我想我可以使用POST,但这似乎不太RESTful.

api rest search filter

426
推荐指数
6
解决办法
31万
查看次数

用于搜索的RESTful URL设计

我正在寻找一种合理的方式将搜索表示为RESTful URL.

设置:我有两个模型,汽车和车库,汽车可以在车库.所以我的网址看起来像:

/car/xxxx
  xxx == car id
  returns car with given id

/garage/yyy
  yyy = garage id
  returns garage with given id
Run Code Online (Sandbox Code Playgroud)

汽车可以独立存在(因此/汽车),也可以存在于车库中.例如,在给定车库中代表所有车辆的正确方法是什么?就像是:

/garage/yyy/cars     ?
Run Code Online (Sandbox Code Playgroud)

车库yyy和zzz中的汽车联盟怎么样?

什么是代表搜索具有某些属性的汽车的正确方法?说:给我看看所有带4扇门的蓝色轿车:

/car/search?color=blue&type=sedan&doors=4
Run Code Online (Sandbox Code Playgroud)

或者它应该是/汽车而不是?

使用"搜索"似乎不合适 - 什么是更好的方式/术语?应该只是:

/cars/?color=blue&type=sedan&doors=4
Run Code Online (Sandbox Code Playgroud)

搜索参数应该是PATHINFO还是QUERYSTRING的一部分?

简而言之,我正在寻找跨模型REST网址设计和搜索的指导.

[更新]我喜欢贾斯汀的答案,但他没有涉及多字段搜索案例:

/cars/color:blue/type:sedan/doors:4
Run Code Online (Sandbox Code Playgroud)

或类似的东西.我们怎么样

/cars/color/blue
Run Code Online (Sandbox Code Playgroud)

到多场案件?

rest

413
推荐指数
7
解决办法
18万
查看次数

使用一长串查询参数设计RESTful查询API

因此,我需要设计一个RESTful查询API,它基于一些过滤器返回一组对象.通常的HTTP方法是GET.唯一的问题是,它可以拥有至少十几个过滤器,如果我们将所有这些过滤器作为查询参数传递,则URL可能会变得很长(足够长以被某些防火墙阻止).

减少参数数量不是一种选择.

我能想到的另一种选择是在URI上使用POST方法并将过滤器作为POST主体的一部分发送.这是不是RESTfull(对查询数据进行POST调用).

有没有更好的设计建议?

谢谢

api rest http-parameters

137
推荐指数
3
解决办法
7万
查看次数

我如何处理HTTP GET查询字符串长度限制仍然想要RESTful?

http://www.boutell.com/newfaq/misc/urllength.html中所述,HTTP查询字符串的长度有限.它可能受客户端(Firefox,IE,...),服务器(Apache,IIS,...)或网络设备(应用防火墙......)的限制.

今天我用搜索表单来解决这个问题.我们开发了一个包含很多字段的搜索表单,这个表单作为GET请求发送到服务器,因此我可以将结果页面添加为书签.

我们有很多字段,我们的查询字符串长度为1100字节,我们有一个防火墙可以丢弃超过1024字节的HTTP GET请求.我们的系统管理员建议我们使用POST,这样就没有限制.

当然,POST会起作用,但我真的觉得搜索是一个GET而不是POST.所以我想我会检查我们的字段名称,以确保查询字符串不会太长,如果我不能,我会务实并使用POST.

但RESTful服务的设计是否存在缺陷?如果我们在GET请求中的长度有限,我该如何将大对象发送到RESTful Web服务?例如,如果我有一个基于文件进行计算的程序,我想提供这样的RESTful Web服务:http://compute.com?content=<base64 file>.这不起作用,因为查询字符串不具有无限长度.

我有点不解......

rest http

74
推荐指数
5
解决办法
5万
查看次数

如何压缩URL参数

假设我有一个单页应用程序,它使用第三方API作为内容.应用程序的逻辑仅在浏览器中,并且没有我可以写入的后端.

为了允许深度链接到应用程序的状态,我使用pushState来跟踪确定应用程序状态的一些变量(注意Ubersicht的公共版本还没有这样做).在这种情况下repos,labels,milestonesusername,show_open(布尔)和with_comments(布尔)和without_comments(布尔).URL格式是?label=label_1,label_2,label_3&repos=repo_1….值通常是嫌疑人,大致[a-zA-Z][a-zA-Z0-9_-]或任何布尔指标.

到现在为止还挺好.现在,因为查询字符串可能有点长而且不实用,并且我希望能够传递类似http://espy.github.io/ubersicht/?state=SOMOPAQUETOKENTHATLOSSLESSLYDECOMPRESSESINTOTHEORIGINALVALUES#hoodiehq的URL ,越短越好.

我的第一次尝试是使用一些类似zlib的算法(https://github.com/imaya/zlib.js)和@flipzagging指向antirez/smaz(https // github.com/antirez/smaz)听起来更适合短字符串(JavaScript版本在https://github.com/personalcomputer/smaz.js).

由于=&没有具体处理https://github.com/personalcomputer/smaz.js/blob/master/lib/smaz.js#L9,我们也许能够调整的东西有一点点.

此外,还有一个选项可以对固定表中的值进行编码,例如,参数的顺序是预定义的,我们需要跟踪的是实际值.例如,可能在smaz压缩之前a=hamster&b=cat变成7hamster3cat(长度+字符)或仓鼠|猫(值+ |).

还有什么我应该找的吗?

javascript browser compression url single-page-application

55
推荐指数
7
解决办法
2万
查看次数

chrome浏览器中url的最大长度

我见过这个流行的问题:

不同浏览器中URL的最大长度是多少?

但由于我无法直接找到谷歌浏览器的引用(因为大多数答案是几年前给出的),我想知道谷歌Chrome浏览器的URL长度目前有哪些限制?

browser url google-chrome

34
推荐指数
2
解决办法
7万
查看次数