Die untere Tabelle stellt die Ergebnisse der Konformitätsanalyse des ESOCC 2014 Papers [1] und des OBJEKTspektrum Artikels [2] dar. Hierbei haben wir die Frameworks Laravel (PHP), Play (Java/Scala), restify (Node.js), Ruby on Rails und ASP.NET (C#) evaluiert.
Test identifier and description | Consolidated View | PHP | Play | Node | Jersey | RoR | ASP |
---|---|---|---|---|---|---|---|
POST | |||||||
PO.1 application/x-www-form-urlencoded | 201 | 201 | 201 | 201 | 201 | 400 | No Response |
PO.1 application/json | 201 | 201 | 201 | 201 | 201 | 406 | 201 |
PO.1 application/xml | 201 | 201 | 201 | 201 | 201 | 406 | 400 |
PO.2 Unsupported content type | 415 | 415 | 415 | 415 | 415 | 400 | 500 |
PO.3 Content type and payload mismatch | 400 | 500 | 400 | 400 | 400 | 400 | 400 |
PO.3 No content type but with payload | 400 | 415 | 500 | 415 | 500 | 400 | 500 |
PO.4 Wrong content length | 400 | No Response | No Response | No Response | No Response | No Response | No Response |
PO.4 Content length as String | 400 | No Response | No Response | No Response | 400 | 400 | 400 |
PO.4 No content length | 411 | No Response | 400 | No Response | 400 | 411 | 411 |
PO.5 Wrong action on resource | 405 | 404 | 404 | 405 | 405 | 404 | 400 |
PO.5 Wrong resource identifier | 404 | 404 | 404 | 404 | 404 | 404 | 404 |
PO.6 Malformed XML | 400 | 500 | 400 | 400 | 400 | 400 | 400 |
PO.6 Malformed JSON | 400 | 500 | 400 | 400 | 400 | 400 | 400 |
PO.7 Wellformed JSON, unprocessible content | 400 | 500 | 400 | 400 | 400 | 400 | 400 |
PO.7 Wellformed XML, unprocessible content | 400 | 500 | 400 | 400 | 400 | 400 | 400 |
PO.8 Unknown protocol version | 505 | 201 | 201 | 201 | 505 | 406 | 201 |
HEAD | |||||||
HE.1 application/json | 200 | 200 | 200 | 200 | 200 | 200 | 405 |
HE.1 application/xml | 200 | 200 | 200 | 200 | 200 | 200 | 405 |
HE.2 Unsupported media type | 406 | 200 | 406 | 406 | 500 | 406 | 405 |
HE.3 Wrong resource identifier | 404 | 404 | 404 | 404 | 404 | 404 | 404 |
HE.3 Not exsiting resource | 404 | 200 | 400 | 404 | 404 | 404 | 405 |
HE.4 Containing content | 400 | 200 | 200 | 200 | 200 | 400 | 405 |
HE.5 No accept header | 200 | 200 | 200 | 200 | 200 | 200 | 405 |
HE.6 Unknown protocol version | 505 | 200 | 200 | 200 | 505 | 200 | 405 |
OPTIONS | |||||||
OP.1 Ping * | 200 | 200 | 400 | 404 | 200 | 404 | 400 |
OP.2 Regular | 200 | 200 | 200 | 405 | 200 | 404 | 405 |
OP.2 Regular with resource id | 200 | 200 | 200 | 405 | 200 | 404 | 405 |
OP.3 application/json | 200 | 200 | 200 | 405 | 200 | 404 | 405 |
OP.3 application/xml | 200 | 200 | 200 | 405 | 200 | 404 | 405 |
OP.4 Unsupported media type in accept header | 406 | 200 | 200 | 406 | 200 | 404 | 405 |
OP.5 Wrong resource identifier | 404 | 404 | 404 | 404 | 404 | 404 | 404 |
OP.5 Not existing resource | 404 | 200 | 400 | 405 | 200 | 404 | 405 |
OP.6 Containing content | 400 | 200 | 400 | 405 | 200 | 400 | 405 |
OP.7 Unknown protocol version | 505 | 200 | 200 | 405 | 505 | 404 | 405 |
GET | |||||||
GE.1 application/json | 200 | 200 | 200 | 200 | 200 | 200 | 200 |
GE.1 application/xml | 200 | 200 | 200 | 200 | 200 | 200 | 200 |
GE.2 Unsupported media type | 406 | 200 | 415 | 406 | 500 | 406 | 200 |
GE.3 Wrong resource identifier | 404 | 404 | 404 | 404 | 404 | 404 | 404 |
GE.3 Not existing resource | 404 | 200 | 400 | 404 | 404 | 404 | 200 |
GE.4 Containing content | 400 | 200 | 200 | 200 | 200 | 400 | 200 |
GE.5 No accept header | 200 | 200 | 200 | No Response | 200 | 200 | 200 |
GE.6 Unknown protocol version | 505 | 200 | 200 | No Response | 505 | 200 | 200 |
PUT | |||||||
PU.1 application/x-www-form-urlencoded | 204 | 204 | 204 | 204 | 204 | 400 | 500 |
PU.1 application/json | 204 | 200 | 204 | 204 | 204 | 204 | 500 |
PU.1 application/xml | 204 | 204 | 204 | 204 | 415 | 204 | 500 |
PU.2 Unsupported content type | 415 | 415 | 415 | 415 | 415 | 400 | 500 |
PU.3 Partial update | 400 | 500 | 204 | 204 | 406 | 204 | 500 |
PU.4 Content type and payload mismatch | 400 | 500 | 400 | 400 | 400 | 400 | 500 |
PU.4 No content type but with payload | 400 | 415 | 500 | 415 | 415 | 400 | 500 |
PU.5 Wrong content length | 400 | No Response | No Response | No Response | No Response | No Response | No Response |
PU.5 Content length as String | 400 | No Response | No Response | No Response | 400 | 400 | 400 |
PU.5 No content length | 411 | No Response | 400 | No Response | 400 | 411 | 411 |
PU.6 Wrong action on resource | 404 | 404 | 404 | 404 | 404 | 404 | 404 |
PU.6 Not existing resource | 404 | 500 | 400 | 500 | 415 | 404 | 500 |
PU.7 Malformed XML | 400 | 500 | 400 | 400 | 415 | 400 | 500 |
PU.7 Malformed XML isComplete=EVIL | 400 | 500 | 400 | 500 | 415 | 404 | 500 |
PU.7 Malformed JSON | 400 | 500 | 400 | 400 | 400 | 400 | 500 |
PU.7 Malformed JSON isComplete=EVIL | 400 | 500 | 400 | 400 | 400 | 400 | 500 |
PU.8 Wellformed JSON, unprocessible content | 400 | 500 | 400 | 400 | 400 | 400 | 500 |
PU.8 Wellformed XML, unprocessible content | 400 | 500 | 400 | 400 | 415 | 400 | 500 |
PU.9 Unknown protocol version | 505 | 500 | 400 | 500 | 505 | 404 | 500 |
PATCH | |||||||
PA.1 application/x-www-form-urlencoded | 204 | 500 | 204 | 204 | 204 | 400 | 204 |
PA.1 application/json | 204 | 500 | 204 | 204 | 204 | 204 | 204 |
PA.1 application/xml | 204 | 204 | 204 | 204 | 415 | 400 | 500 |
PA.2 Unsupported content type | 415 | 415 | 415 | 415 | 415 | 400 | 500 |
PA.3 Complete update | 204 | 200 | 204 | 204 | 204 | 204 | 204 |
PA.4 Content type mismatch and payload | 400 | 500 | 400 | 400 | 400 | 400 | 500 |
PA.4 No content type but with payload | 400 | 415 | 500 | 415 | 415 | 400 | 500 |
PA.5 Wrong content length | 400 | No Response | No Response | No Response | No Response | No Response | No Response |
PA.5 Content length as String | 400 | No Response | No Response | No Response | 400 | 400 | 400 |
PA.5 No content length | 411 | No Response | 400 | No Response | 400 | 400 | 500 |
PA.6 Wrong action on resource | 404 | 404 | 404 | 404 | 404 | 404 | 404 |
PA.6 Not existing resource | 404 | 500 | 400 | 404 | 415 | 404 | 500 |
PA.7 Malformed XML | 400 | 500 | 400 | 400 | 415 | 400 | 500 |
PA.7 Malformed XML isComplete=Evil | 400 | 500 | 400 | 404 | 415 | 404 | 500 |
PA.7 Malformed JSON | 400 | 500 | 400 | 400 | 400 | 400 | 204 |
PA.7 Malformed JSON isComplete=Evil | 400 | 500 | 400 | 404 | 406 | 404 | 204 |
PA.8 Wellformed JSON, unprocessible content | 400 | 500 | 400 | 404 | 404 | 404 | 204 |
PA.8 Wellformed XML, unprocessible content | 400 | 500 | 400 | 404 | 415 | 404 | 500 |
PA.9 Unknown protocol version | 505 | 500 | 400 | 404 | 505 | 404 | 204 |
DELETE | |||||||
DE.1 Regular | 204 | 204 | 204 | 204 | 204 | 204 | 204 |
DE.2 Regular isComplete=false | 403 | 204 | 403 | 403 | 403 | 204 | 403 |
DE.3 all | 405 | 404 | 404 | 405 | 405 | 404 | 404 |
DE.4 Not existing resource | 404 | 500 | 400 | 404 | 404 | 404 | 500 |
DE.5 Containing content | 400 | 204 | 204 | 204 | 204 | 204 | 403 |
DE.6 Unknown protocol version | 505 | 204 | 204 | 204 | 505 | 204 | 403 |
EVIL | |||||||
EV.1 application/json | 501 | 501 | 404 | No Response | 405 | 500 | 404 |
EV.1 application/xml | 501 | 501 | 404 | No Response | 405 | 500 | 404 |
EV.2 Unsupported media type | 501 | 501 | 404 | No Response | 405 | 500 | 404 |
EV.3 Wrong resource identifier | 501 | 501 | 404 | No Response | 404 | 500 | 404 |
EV.4 Containing content | 501 | 501 | 404 | No Response | 405 | 500 | 404 |
EV.5 Unknown protocol version | 501 | 501 | 404 | No Response | 505 | 500 | 404 |
Test identifier and description | Consolidated View | Amazon | HP | Microsoft | |
---|---|---|---|---|---|
POST | |||||
PO.1 Content-Type application/json | 201 | 412 | 400 | 204 | 400 |
PO.1 Content-Type application/xml | 201 | 412 | 400 | 204 | 400 |
PO.2 Unsupported Content-Type | 415 | 412 | 400 | 204 | 400 |
PO.3 Content-Type and payload mismatch | 400 | 412 | 400 | 204 | 400 |
PO.3 No Content-Type but with payload | 400 | 412 | 400 | 204 | 400 |
PO.4 Content-Length bigger than payload size | 400 | 412 | No Response | No Response | 400 |
PO.4 Content-Length as String | 400 | 400 | 400 | 400 | 400 |
PO.4 No Content-Length | 411 | 412 | 411 | 204 | 411 |
PO.5 Wrong action on resource | 405 | 405 | 400 | 404 | 405 |
PO.5 Not existing resource | 404 | 412 | 400 | 204 | 405 |
PO.6 Malformed application/json | 400 | 412 | 400 | 204 | 400 |
PO.6 Malformed application/xml | 400 | 412 | 400 | 204 | 400 |
PO.7 Wellformed application/json, unprocessible content | 400 | 412 | 400 | 204 | 400 |
PO.7 Wellformed application/xml, unprocessible content | 400 | 412 | 400 | 204 | 400 |
PO.8 Unknown protocol version | 505 | 505 | 400 | 501 | 400 |
OPTIONS | |||||
OP.1 Ping * | 200 | 400 | 200 | 200 | 400 |
OP.2 Regular | 200 | 400 | 200 | 200 | 400 |
OP.2 Regular with resource id | 200 | 400 | 200 | 200 | 400 |
OP.3 Accept application/json | 200 | 400 | 200 | 200 | 400 |
OP.3 Accept application/xml | 200 | 400 | 200 | 200 | 400 |
OP.4 Unsupported media type in accept header | 415 | 400 | 200 | 200 | 400 |
OP.5 Wrong resource identifier | 404 | 400 | 200 | 200 | 400 |
OP.5 Not existing resource | 404 | 400 | 200 | 200 | 400 |
OP.6 Containing content | 400 | 400 | 200 | 200 | 400 |
OP.7 Unknown protocol version | 505 | 505 | 200 | 501 | 400 |
HEAD | |||||
HE.1 Accept application/json | 200 | 200 | 200 | 200 | 200 |
HE.1 Accept application/xml | 200 | 200 | 200 | 200 | 200 |
HE.2 Unsupported media type | 406 | 200 | 200 | 200 | 200 |
HE.3 Wrong resource identifier | 404 | 404 | 404 | 404 | 404 |
HE.3 Not existing resource | 404 | 404 | 404 | 404 | 404 |
HE.4 Containing content | 400 | 200 | 400 | 200 | 200 |
HE.5 No Accept header | 200 | 200 | 200 | 200 | 200 |
HE.6 Unknown protocol version | 505 | 505 | 200 | 501 | 200 |
GET | |||||
GE.1 Accept application/json | 200 | 200 | 200 | 200 | 200 |
GE.1 Accept application/xml | 200 | 200 | 200 | 200 | 200 |
GE.2 Unsupported media type | 406 | 200 | 200 | 200 | 200 |
GE.3 Wrong resource identifier | 404 | 404 | 404 | 404 | 404 |
GE.3 Not existing resource | 404 | 404 | 404 | 404 | 404 |
GE.4 Containing content | 400 | 200 | 400 | 200 | 200 |
GE.5 No Accept header | 200 | 200 | 200 | 200 | 200 |
GE.6 Unknown protocol version | 505 | 505 | 200 | 501 | 200 |
PUT | |||||
PU.1 Content-Type application/json | 204 | 200 | 200 | 201 | 201 |
PU.1 Content-Type application/xml | 204 | 200 | 200 | 201 | 201 |
PU.2 Unsupported Content-Type | 415 | 200 | 200 | 201 | 201 |
PU.3 Partial update with Content-Type application/json | 400 | 200 | 200 | 201 | 201 |
PU.3 Partial update with Content-Type application/xml | 400 | 200 | 200 | 201 | 201 |
PU.4 Content-Type and payload mismatch | 400 | 200 | 200 | 201 | 201 |
PU.4 No Content-Type but with payload | 400 | 200 | 200 | 201 | 201 |
PU.5 Content-Length bigger than payload size | 400 | No Response | No Response | No Response | No Response |
PU.5 Content-Length as String | 400 | 400 | 400 | 400 | 400 |
PU.5 No Content-Length | 411 | 411 | 411 | 411 | 411 |
PU.6 Wrong resource identifier | 404 | 400 | 400 | 202 | 404 |
PU.6 Not existing resource | 404 | 200 | 200 | 201 | 201 |
PU.7 Malformed application/json | 400 | 200 | 200 | 201 | 201 |
PU.7 Malformed application/xml | 400 | 200 | 200 | 201 | 201 |
PU.8 Wellformed application/json, unprocessible content | 400 | 200 | 200 | 201 | 201 |
PU.8 Wellformed application/xml, unprocessible content | 400 | 200 | 200 | 201 | 201 |
PU.9 Unknown protocol version | 505 | 505 | 200 | 501 | 201 |
PU.5 Content-Length smaller than payload size | 400 | 400 | 200 | 201 | 201 |
PU.10 Content-Length exceeding the allowed payload size | 413 | 400 | ? | 413 | 413 |
PATCH | |||||
PA.1 Content-Type application/json | 204 | 405 | 405 | 501 | 400 |
PA.1 Content-Type application/xml | 204 | 405 | 405 | 501 | 400 |
PA.2 Unsupported Content-Type | 415 | 405 | 405 | 501 | 400 |
PA.3 Complete update with Content-Type application/json | 204 | 405 | 405 | 501 | 400 |
PA.3 Complete update with Content-Type application/xml | 204 | 405 | 405 | 501 | 400 |
PA.4 Content-Type and payload mismatch | 400 | 405 | 405 | 501 | 400 |
PA.4 No Content-Type but with payload | 400 | 405 | 405 | 501 | 400 |
PA.5 Wrong Content-Length | 400 | 405 | No Response | 501 | 400 |
PA.5 Content-Length as String | 400 | 400 | 400 | 501 | 400 |
PA.5 No Content-Length | 411 | 405 | 405 | 501 | 400 |
PA.6 Wrong resource identifier | 404 | 405 | 405 | 501 | 400 |
PA.6 Not existing resource | 404 | 405 | 405 | 501 | 400 |
PA.7 Malformed application/json | 400 | 405 | 405 | 501 | 400 |
PA.7 Malformed application/xml | 400 | 405 | 405 | 501 | 400 |
PA.8 Wellformed application/json, unprocessible content | 400 | 405 | 405 | 501 | 400 |
PA.8 Wellformed application/xml, unprocessible content | 400 | 405 | 405 | 501 | 400 |
PA.9 Unknown protocol version | 505 | 505 | 405 | 501 | 400 |
DELETE | |||||
DE.1 Regular | 204 | 204 | 204 | 204 | 202 |
DE.3 All resources | 405 | 409 | 409 | 409 | 400 |
DE.4 Not existing resource | 404 | 204 | 404 | 404 | 404 |
DE.5 Containing content | 400 | 204 | 400 | 204 | 202 |
DE.6 Unknown protocol version | 505 | 505 | 204 | 501 | 202 |
EVIL | |||||
EV.1 Accept application/json | 501 | 405 | 502 | 501 | 400 |
EV.1 Accept application/xml | 501 | 405 | 502 | 501 | 400 |
EV.2 Unsupported media type in accept header | 501 | 405 | 502 | 501 | 400 |
EV.3 Wrong resource identifier | 501 | 405 | 502 | 501 | 400 |
EV.4 Containg content | 501 | 405 | 502 | 501 | 400 |
EV.5 Unknown protocol version | 501 | 505 | 502 | 501 | 400 |