graph: { title:"Activity diagram for an HTTP request"

colorentry 1: 190 220 240
colorentry 8: 85 115 180

display_edge_labels:yes
dirty_edge_labels:yes
yspace:80
xspace:240
equalydist:yes
node.borderwidth:1
node.fontname:"helvB10"
node.height:40
edge.fontname:"helvB10"
straightphase:yes
linearsegments:yes
layout_downfactor:8
layout_nearfactor:1
treefactor:10.0
manhattanedges:yes
inportsharing:yes
edge.arrowsize:12

node: { title:"start" label:"" width:20 height:20 shape:circle color:7 }

node.color:blue
node.width:230
node.iconfile:"bg.png"
node.margin:0
node.borderwidth:0
node: { title:"503" label:"503 Service Unavailable" }
node: { title:"400" label:"400 Bad Request" }
node: { title:"414" label:"414 Request URI Too Long" }
node: { title:"401" label:"401 Unauthorized" }
node: { title:"403" label:"403 Forbidden" }
node: { title:"200" label:"200 OK" }
node: { title:"405" label:"405 Method Not Allowed" }
node: { title:"501" label:"501 Not Implemented" }
node: { title:"412" label:"412 Precondition Failed" }
node: { title:"412 2" label:"412 Precondition Failed" }
node: { title:"412 3" label:"412 Precondition Failed" }
node: { title:"304" label:"304 Not Modified" }
node: { title:"304 2" label:"304 Not Modified" }
node: { title:"413" label:"413 Request Entity Too Large" }
node: { title:"415" label:"415 Unsupported Media Type" }
node: { title:"501 2" label:"501 Not Implemented" }
node: { title:"409" label:"409 Conflict" }
node: { title:"500" label:"500 Internal Server Error" }
node: { title:"303" label:"303 See Other" }
node: { title:"204" label:"204 No Content" }
node: { title:"500 2" label:"500 Internal Server Error" }
node: { title:"405 2" label:"405 Method Not Allowed" }
node: { title:"406" label:"406 Not Acceptable" }
node: { title:"406 2" label:"406 Not Acceptable" }
node: { title:"300" label:"300 Multiple Choices" }
node: { title:"200 2" label:"200 OK" }
node: { title:"301" label:"301 Moved Permanently" }
node: { title:"302" label:"302 Found" }
node: { title:"404" label:"404 Not Found" }
node: { title:"410" label:"410 Gone" }
node: { title:"501 3" label:"501 Not Implemented" }
node: { title:"500 3" label:"500 Internal Server Error" }
node: { title:"303 2" label:"303 See Other" }
node: { title:"201" label:"201 Created" }
node: { title:"200 3" label:"200 OK" }
node: { title:"204 2" label:"204 No Content" }
node: { title:"202" label:"202 Accepted" level:21 }
node: { title:"200 4" label:"200 OK" }

node.iconfile:""
node.shape:rhomb
node.width:50
node.height:50
node.color:blue
node.textmode:right_justify
node.borderwidth:1
node: { title:"Available?" label:"Available?\t\n" }
node: { title:"Malformed?" label:"Malformed?\t\n" }
node: { title:"URI too long?" label:"URI too long?\t\n" }
node: { title:"Authorized?" label:"Authorized?\t\n" }
node: { title:"Forbidden?" label:"Forbidden?\t\n" }
node: { title:"OPTIONS?" label:"OPTIONS?\t\n" }
node: { title:"DELETE, GET, HEAD, PUT, POST?" label:"DELETE, GET, HEAD, PUT, POST?\t\n" }
node: { title:"Known method?" label:"\t Known method?\n" textmode:left_justify }
node: { title:"Resource exists?" label:"Resource exists?\t\n" }
node: { title:"If-Match exists?" label:"If-Match exists?\t\n" }
node: { title:"If-Match: * exists?" label:"\t If-Match: * exists?\n" textmode:left_justify }
node: { title:"If-Match: * exists? 2" label:"\t If-Match: * exists?\n" textmode:left_justify }
node: { title:"Etag in If-Match?" label:"\t Etag in If-Match?\n" textmode:left_justify }
node: { title:"If-Unmodified-Since exists?" label:"If-Unmodified-Since exists?\t\n" }
node: { title:"If-Unmodified-Since is a valid date?" label:"If-Unmodified-Since is a valid date?\t\n" }
node: { title:"Last-Modified > If-Unmodified-Since?" label:"Last-Modified > If-Unmodified-Since?\n" textmode:center }
node: { title:"If-None-Match exists?" label:"If-None-Match exists?\n" textmode:center }
node: { title:"If-None-Match: * exists?" label:"If-None-Match: * exists?\n" textmode:center }
node: { title:"GET/HEAD?" label:"GET/HEAD?\t\n" }
node: { title:"If-Modified-Since exists?" label:"\t If-Modified-Since exists?\n" textmode:left_justify }
node: { title:"If-Modified-Since is a valid date?" label:"\t If-Modified-Since is a valid date?\n" textmode:left_justify }
node: { title:"If-Modified-Since > Now?" label:"If-Modified-Since > Now?\t\n" }
node: { title:"Last-Modified > If-Modified-Since?" label:"Last-Modified > If-Modified-Since?\n" textmode:center }
node: { title:"Etag in If-None-Match?" label:"Etag in If-None-Match?\n" textmode:center}
node: { title:"POST?" label:"POST?\t\n" }
node: { title:"PUT?" label:"PUT?\t\n" }
node: { title:"DELETE?" label:"DELETE?\t\n" }
node: { title:"GET/HEAD? 2" label:"GET/HEAD?\t\n" }
node: { title:"Request entity too large?" label:"\t Request entity too large?\n" textmode:left_justify }
node: { title:"Request entity too large? 2" label:"Request entity too large?\t\n" }
node: { title:"Unknown Content-*?" label:"Unknown Content-*?\t\n" }
node: { title:"Supported media type?" label:"\t Supported media type?\n" textmode:left_justify }
node: { title:"Supported media type? 2" label:"Supported media type?\t\n" }
node: { title:"Appended?" label:"\t Appended?\n" textmode:left_justify }
node: { title:"Conflict?" label:"Conflict?\t\n" }
node: { title:"Updated?" label:"Updated?\t\n" }
node: { title:"Redirect?" label:"\t Redirect?\n" textmode:left_justify }
node: { title:"Delete enacted?" label:"\t Delete enacted?\n" textmode:left_justify }
node: { title:"Deleted?" label:"\t Deleted?\n" textmode:left_justify }
node: { title:"Accept exists?" label:"Accept exists?\t\n" }
node: { title:"Accept-Language exists?" label:"Accept-Language exists?\n" textmode:center }
node: { title:"Acceptable media type available?" label:"Acceptable media type available?\n" textmode:center }
node: { title:"Acceptable language available?" label:"\nAcceptable language\n\n\tavailable?\n" textmode:center }
node: { title:"Accept-Charset exists?" label:"Accept-Charset exists?\n" textmode:center }
node: { title:"Acceptable charset available?" label:"Acceptable charset available?\n" textmode:center }
node: { title:"Accept-Encoding exists?" label:"Accept-Encoding exists?\n" textmode:center }
node: { title:"Acceptable encoding available?" label:"\nAcceptable encoding\n\n\tavailable?\n" textmode:center }
node: { title:"Multiple representations?" label:"\n\tMultiple\n\nrepresentations?\n" textmode:center }
node: { title:"Retrieved?" label:"Retrieved?\t\n" }
node: { title:"PUT? 2" label:"\t PUT?\n" textmode:left_justify }
node: { title:"Supported Content-*?" label:"\t Supported Content-*?\n" textmode:left_justify }
node: { title:"Supported Content-*? 2" label:"Supported Content-*?\n" textmode:center }
node: { title:"Resource previously existed?" label:"Resource previously existed?\t\n" }
node: { title:"Resource moved permanently?" label:"Resource moved permanently?\n" textmode:center }
node: { title:"Resource moved temporarily?" label:"Resource moved temporarily?\n" textmode:center }
node: { title:"POST? 2" label:"POST?\t\n" }
node: { title:"POST? 3" label:"\t POST?\n" textmode:left_justify }
node: { title:"Server permits POST to missing resource?" label:"\nServer permits POST\n\nto missing resource?\n" textmode:center }
node: { title:"Server permits POST to missing resource? 2" label:"\nServer permits POST\n\nto missing resource?\n" textmode:center }
node: { title:"Resource created?" label:"\t Resource created?\n" textmode:left_justify }
node: { title:"Resource created? 2" label:"Resource created?\n" textmode:center }
node: { title:"Resource has a URI?" label:"Resource has a URI?\n" textmode:center }
node: { title:"Redirect? 2" label:"\t Redirect?\n" textmode:left_justify }
node: { title:"Response includes an entity?" label:"Response includes an entity?\n" textmode:center }
node: { title:"Response includes an entity? 2" label:"Response includes an entity?\n" textmode:center }
node: { title:"Response includes an entity? 3" label:"\nResponse includes\n\n\tan entity?\n" textmode:center }
node: { title:"Resource has a URI? 2" label:"\t Resource has a URI?\n" textmode:left_justify }

edge: { source:"start" target:"Available?" color:darkgrey }

edge.color:darkblue
edge.label:"yes"
edge: { source:"Available?" target:"URI too long?" }
nearedge: { source:"Malformed?" target:"400" }
nearedge: { source:"URI too long?" target:"414" }
edge: { source:"Authorized?" target:"Forbidden?" }
nearedge: { source:"Forbidden?" target:"403" }
nearedge: { source:"OPTIONS?" target:"200" }
nearedge: { source:"Known method?" target:"405" }
edge: { source:"DELETE, GET, HEAD, PUT, POST?" target:"Resource exists?" }
bentnearedge: { source:"Resource exists?" target:"If-Match exists?" }
leftnearedge: { source:"If-Match: * exists?" target:"412" }
nearedge: { source:"If-Match exists?" target:"If-Match: * exists? 2" }
edge: { source:"If-Match: * exists? 2" target:"If-Unmodified-Since exists?" }
leftnearedge: { source:"Etag in If-Match?" target:"If-Unmodified-Since exists?" }
edge: { source:"If-Unmodified-Since exists?" target:"If-Unmodified-Since is a valid date?" }
nearedge: { source:"If-Unmodified-Since is a valid date?" target:"Last-Modified > If-Unmodified-Since?" }
nearedge: { source:"Last-Modified > If-Unmodified-Since?" target:"412 2" }
bentnearedge: { source:"If-None-Match exists?" target:"If-None-Match: * exists?" }
leftbentnearedge: { source:"If-None-Match: * exists?" target:"GET/HEAD?" }
nearedge: { source:"Etag in If-None-Match?" target:"GET/HEAD?" }
nearedge: { source:"GET/HEAD?" target:"304" }
edge: { source:"If-Modified-Since exists?" target:"If-Modified-Since is a valid date?" }
edge: { source:"If-Modified-Since is a valid date?" target:"If-Modified-Since > Now?" }
edge: { source:"If-Modified-Since > Now?" target:"POST?" }
edge: { source:"Last-Modified > If-Modified-Since?" target:"POST?" }
edge: { source:"POST?" target:"Request entity too large?" }
edge: { source:"PUT?" target:"Request entity too large? 2" }
nearedge: { source:"Request entity too large?" target:"413" }
nearedge: { source:"Request entity too large? 2" target:"413" }
rightnearedge: { source:"Unknown Content-*?" target:"501 2" }
edge: { source:"Supported media type?" target:"Appended?" }
edge: { source:"Supported media type? 2" target:"Conflict?" }
rightnearedge: { source:"Conflict?" target:"409" }
edge: { source:"Appended?" target:"Resource has a URI? 2" }
edge: { source:"Resource has a URI? 2" target:"Redirect?" }
edge: { source:"Updated?" target:"204" }
nearedge: { source:"Redirect?" target:"303" }
edge: { source:"DELETE?" target:"Delete enacted?" }
edge: { source:"Delete enacted?" target:"Deleted?" }
edge: { source:"Deleted?" target:"Response includes an entity? 2" }
edge: { source:"GET/HEAD? 2" target:"Accept exists?" }
edge: { source:"Accept exists?" target:"Acceptable media type available?" }
leftnearedge: { source:"Acceptable media type available?" target:"Accept-Language exists?" }
edge: { source:"Accept-Language exists?" target:"Acceptable language available?" }
leftnearedge: { source:"Acceptable language available?" target:"Accept-Charset exists?" }
edge: { source:"Accept-Charset exists?" target:"Acceptable charset available?" }
leftnearedge: { source:"Acceptable charset available?" target:"Accept-Encoding exists?" }
edge: { source:"Accept-Encoding exists?" target:"Acceptable encoding available?" }
nearedge: { source:"Acceptable encoding available?" target:"Multiple representations?" }
nearedge: { source:"Multiple representations?" target:"300" }
edge: { source:"Retrieved?" target:"200 2" }
leftnearedge: { source:"Resource previously existed?" target:"Resource moved permanently?" }
leftnearedge: { source:"Resource moved permanently?" target:"301" }
leftnearedge: { source:"Resource moved temporarily?" target:"302" }
leftbentnearedge: { source:"POST? 2" target:"Server permits POST to missing resource?" }
rightbentnearedge: { source:"POST? 3" target:"Server permits POST to missing resource? 2" }
edge: { source:"PUT? 2" target:"Supported Content-*?" }
edge: { source:"Server permits POST to missing resource?" target:"Supported Content-*? 2" }
nearedge: { source:"Server permits POST to missing resource? 2" target:"Supported Content-*? 2" }
edge: { source:"Supported Content-*?" target:"Resource created?" }
edge: { source:"Supported Content-*? 2" target:"Resource created? 2" }
edge: { source:"Resource created?" target:"Redirect? 2" }
edge: { source:"Resource created? 2" target:"Resource has a URI?" }
rightnearedge: { source:"Resource has a URI?" target:"Redirect? 2" }
edge: { source:"Redirect? 2" target:"303 2" }
edge: { source:"Response includes an entity?" target:"200 3" }
leftnearedge: { source:"Response includes an entity? 2" target:"200 2" }
nearedge: { source:"Response includes an entity? 3" target:"200 4" }

edge.color:red
edge.label:"no"
nearedge: { source:"Available?" target:"503" }
edge: { source:"URI too long?" target:"Malformed?" }
edge: { source:"Malformed?" target:"Authorized?" }
nearedge: { source:"Authorized?" target:"401" }
edge: { source:"Forbidden?" target:"OPTIONS?" }
edge: { source:"OPTIONS?" target:"DELETE, GET, HEAD, PUT, POST?" }
rightnearedge: { source:"DELETE, GET, HEAD, PUT, POST?" target:"Known method?" }
edge: { source:"Known method?" target:"501" }
edge: { source:"Resource exists?" target:"If-Match: * exists?" }
bentnearedge: { source:"If-Match: * exists? 2" target:"Etag in If-Match?" }
bentnearedge: { source:"Etag in If-Match?" target:"412 2" }
edge: { source:"If-Match exists?" target:"If-Unmodified-Since exists?" }
bentnearedge: { source:"If-Unmodified-Since exists?" target:"If-None-Match exists?" }
edge: { source:"If-Unmodified-Since is a valid date?" target:"If-None-Match exists?" }
edge: { source:"Last-Modified > If-Unmodified-Since?" target:"If-None-Match exists?" }
edge: { source:"GET/HEAD?" target:"412 3" }
rightbentnearedge: { source:"If-None-Match exists?" target:"If-Modified-Since exists?" }
bentnearedge: { source:"If-None-Match: * exists?" target:"Etag in If-None-Match?" }
rightnearedge: { source:"Etag in If-None-Match?" target:"If-Modified-Since exists?" }
edge: { source:"If-Modified-Since exists?" target:"POST?" }
bentnearedge: { source:"If-Modified-Since is a valid date?" target:"POST?" }
rightnearedge: { source:"If-Modified-Since > Now?" target:"Last-Modified > If-Modified-Since?" }
nearedge: { source:"Last-Modified > If-Modified-Since?" target:"304 2" }
leftnearedge: { source:"POST?" target:"PUT?" }
leftnearedge: { source:"PUT?" target:"DELETE?" }
edge: { source:"Request entity too large?" target:"Supported media type?" }
edge: { source:"Request entity too large? 2" target:"Unknown Content-*?" }
edge: { source:"Unknown Content-*?" target:"Supported media type? 2" }
nearedge: { source:"Supported media type?" target:"415" }
nearedge: { source:"Supported media type? 2" target:"415" }
edge: { source:"Conflict?" target:"Updated?" }
nearedge: { source:"Appended?" target:"500" }
nearedge: { source:"Updated?" target:"500" }
nearedge: { source:"Redirect?" target:"204" }
leftnearedge: { source:"Delete enacted?" target:"202" }
leftnearedge: { source:"Deleted?" target:"500 2" }
leftnearedge: { source:"DELETE?" target:"GET/HEAD? 2" }
nearedge: { source:"GET/HEAD? 2" target:"405 2" }
leftbentnearedge: { source:"Accept exists?" target:"Accept-Language exists?" }
edge: { source:"Acceptable media type available?" target:"406" }
leftbentnearedge: { source:"Accept-Language exists?" target:"Accept-Charset exists?" }
nearedge: { source:"Acceptable language available?" target:"406" }
leftbentnearedge: { source:"Accept-Charset exists?" target:"Accept-Encoding exists?" }
edge: { source:"Acceptable charset available?" target:"406 2" }
bentnearedge: { source:"Accept-Encoding exists?" target:"Multiple representations?" }
nearedge: { source:"Acceptable encoding available?" target:"406 2" }
edge: { source:"Multiple representations?" target:"Retrieved?" }
rightnearedge: { source:"Retrieved?" target:"500 2" }
edge: { source:"If-Match: * exists?" target:"PUT? 2" }
leftnearedge: { source:"PUT? 2" target:"Resource previously existed?" }
edge: { source:"Resource moved permanently?" target:"Resource moved temporarily?" }
edge: { source:"Resource previously existed?" target:"POST? 2" }
edge: { source:"Resource moved temporarily?" target:"POST? 3" }
edge: { source:"POST? 2" target:"404" }
leftbentnearedge: { source:"POST? 3" target:"410" }
rightnearedge: { source:"Server permits POST to missing resource?" target:"404" }
leftnearedge: { source:"Server permits POST to missing resource? 2" target:"410" }
leftnearedge: { source:"Supported Content-*?" target:"501 3" }
nearedge: { source:"Supported Content-*? 2" target:"501 3" }
nearedge: { source:"Resource created?" target:"500 3" }
nearedge: { source:"Resource created? 2" target:"500 3" }
edge: { source:"Redirect? 2" target:"201" }
leftnearedge: { source:"Resource has a URI?" target:"Response includes an entity?" }
leftnearedge: { source:"Response includes an entity?" target:"204 2" }
nearedge: { source:"Response includes an entity? 2" target:"204" }
leftnearedge: { source:"Resource has a URI? 2" target:"Response includes an entity? 3" }
edge: { source:"Response includes an entity? 3" target:"204" }

}

» GIF
» Index