客戶端向 SuperMap iServer 服務器發送 HTTP 請求時(shí),SuperMap iServer 服務器會根據請求的(de)類型返回響應結果,通過響應結果中的(de)狀态碼,客戶端可以(yǐ)得知請求的(de)處理情況。例如:是(shì)否成功、出(chū)錯的(de)原因,等等。
HTTP 協議定義了(le/liǎo)各個(gè)狀态碼代表的(de)意義,官方定義有41種狀态碼,分5類,如下:
- 1xx:信息性——收到(dào)請求,繼續處理
- 2xx:成功性——成功收到(dào)、理解并接受行動
- 3xx:重定向——必須采取進一(yī / yì /yí)步行動來(lái)完成請求
- 4xx:客戶端錯誤——請求包含錯誤語法或不(bù)能完成
- 5xx:服務器錯誤——服務器沒有成功完成顯然有效的(de)請求
SuperMap iServer 主要(yào / yāo)用到(dào)其中的(de)2xx 系列、4xx 系列和(hé / huò)5xx 系列,各個(gè)狀态碼的(de)含義如下表所示:
狀态碼值 |
含義 |
200 |
表示服務器成功執行了(le/liǎo)客戶端的(de) HTTP 請求。 如果請求的(de)類型是(shì) GET 說(shuō)明獲取資源成功,是(shì) PUT 說(shuō)明修改資源成功,是(shì) DELETE 說(shuō)明删除資源成功,是(shì) HEAD 說(shuō)明獲取資源的(de)元數據成功。 |
201 |
表示服務器按客戶端的(de)請求成功創建了(le/liǎo)一(yī / yì /yí)個(gè)新資源。對應的(de)請求類型是(shì) POST 或 PUT。 注意,這(zhè)時(shí)返回的(de)信息中會包含 Location 報頭,指向新創建資源的(de)規範 URI。 |
303 |
表示服務器将客戶端的(de)請求重定向到(dào)另一(yī / yì /yí)個(gè) URI,要(yào / yāo)完成請求必須進行進一(yī / yì /yí)步操作。 例如,在(zài)訪問 image 資源時(shí),redirect 參數爲(wéi / wèi) true(默認值)則表示重定向圖片,URI 如下: http://supermapiserver:8090/iserver/services/map-world/rest/maps/World Map/image.png?center={"x":103,"y":34}&scale=0.00000002&redirect=true HTTP 響應的(de)狀态碼爲(wéi / wèi) 303,并重定向到(dào)圖片地(dì / de)址。 |
400 |
表示客戶端的(de)請求參數不(bù)合法或沒有表達足夠的(de)信息。 例如,對 layers 資源執行 POST 操作創建一(yī / yì /yí)個(gè)新的(de)圖層,即 layer 資源,但如果沒有在(zài)請求體裏給出(chū)創建新圖層必須的(de)參數,即圖層的(de)描述信息,這(zhè)時(shí)就(jiù)會得到(dào)響應碼400。 |
401 |
表示因爲(wéi / wèi)安全的(de)原因,導緻對資源的(de)操作沒有完成。 例如,删除數據集,可以(yǐ)對 dataset 資源執行 DELETE 請求(包含參數),URI 如下: http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Countries.rjson 而(ér)創建新圖層需要(yào / yāo)管理員權限,假設某個(gè)客戶端沒有這(zhè)個(gè)權限,當它執行以(yǐ)上(shàng)請求時(shí),就(jiù)會得到(dào)響應碼401。 |
404 |
表示客戶端請求的(de)資源不(bù)存在(zài),即 URI 無效。 例如,在(zài)獲取名爲(wéi / wèi) World 的(de) map 資源時(shí),對如下 URI 執行 GET 請求: http://supermapiserver:8090/iserver/services/components-rest/rest/maps/World.json 正常返回響應碼200,說(shuō)明成功獲取資源;但當服務器(server)裏根本沒有名爲(wéi / wèi) World 的(de) map 資源時(shí),就(jiù)會返回響應碼404,表示資源無效。 |
405 |
表明資源不(bù)支持該操作。 例如:對 maps 資源執行 PUT 和(hé / huò) DELETE 請求會得到(dào)響應碼405,表示 maps 資源對 PUT 和(hé / huò) DELETE 不(bù)支持。 |
406 |
表示資源不(bù)支持客戶端請求的(de)表述格式(參見 SuperMap iServer REST API 輸出(chū)格式介紹)。 例如,在(zài)獲取 maps 資源時(shí),對如下 URI 執行 GET 請求: http://supermapiserver:8090/iserver/services/components-rest/rest/maps.bmp 因爲(wéi / wèi) maps 不(bù)是(shì)圖片資源,所以(yǐ)不(bù)支持 BMP 的(de)表述格式,這(zhè)時(shí)就(jiù)會得到(dào)響應碼406。 |
500 |
表示服務器端發生非預期情況,導緻請求沒有完成。 |