-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Semantics organisation #368
Comments
|
I think I agree. It also helps with fields thare both request and response fields. Right now, Accept-Encoding is in Secion 8, although it also defines the response variant. |
|
The current organization of Semantics is split by request/response, whereas Conditionals, Range, Auth, Conneg, and Caching are better explained in proximity. That is, of course, why we split them for 7231. I have been thinking of going back to the reference style of 2616, where the major text sections describe what can be done by reference to the detailed sections per element sorted alphabetically. I can try that after the Apache board meeting today. Did I mention that I am now chairman of the ASF, again? |
|
FWIW, if we do a major re-org, we should avoid to have that mixed with other changes (in the same Internet Draft). |
|
Yes, we are long overdue for a new draft set. I think we need to stop waiting for meetings to generate them. |
|
Will submit one today. |
|
Unfortunately, any depth-first approach to organizing the document doesn't work because each protocol element is important for two to four different actions one might want to take in HTTP. We keep getting lost in the details. For example, placing Content-Type under Content Negotiation doesn't work because negotiation is only relevant to some 5% of resources, whereas everyone needs the self-descriptive aspect of a Content-Type. Range is easier to describe separately, but it has an impact on what any response message is saying (i.e., it fundamentally alters the message semantics such that all of the other cases where we describe "what is in a payload" become wrong if we don't mention 206 and Content-Range as the exception). Likewise, conditional requests depend on understanding methods, header fields, the selected representation, and validators, and Range. Auth is the only one that isn't looped into everything, for better or worse. What I think we can do is extract the summaries into sections that overview the major protocol features and define them mostly by reference to the individual methods, codes, fields, etc. That would replace/transform the Architecture section to include resources, URIs, representations, and message-based interaction first, followed by the features of content negotiation, conditional requests, range requests, and authentication. We could then follow that with detailed requirements for each method, status code, and header field listed alphabetically. Meanwhile, I am still trying to find the right balance between the Notation sections and the Conformance section. I am thinking of merging them into a section below the Intro. Something like: |
|
That looks like a good start. Based upon the ToC above, a few comments/suggestions: Where does "extending and versioning HTTP" (current 4) go? Re: 3 - 'Interaction' isn't quite the right classifier; perhaps 'Concepts'? Back to 'Architecture'? Hm. I'm not sure why these things are bucketed together, and why other things aren't included.I'm tempted to say that they should be promoted to top-level sections (Resources, Representations, Components and Messages) -- that would also help avoid some very deep headers (e.g., in fields). Overall, it would be good if the section titles were a bit more descriptive. Features should be higher; e.g., before Requests. I'd also consider making each of its items a top-level section. |
|
/me not sure about "Syntax Notation" below "Conformance". |
|
So, promote subsections of Interaction up, move Features closer to front, consider discussing basic method features just before that. |
|
and move Routing closer to URIs |
|
My reorg proposal is pretty much complete, since I can't do much else without adding new text. It might be possible (and make more sense) to place IANA Considerations before Security Considerations, but that might upset someone. The current outline of #446 looks like: |
|
I say ship it and we'll go from there. |
|
Thaniks, Roy. I'm on the road today, but I'll do a sanity check and then submit drafts tomorrow! |
|
Merging .... Wheeeeeeeeee! |
I find that I struggle with the current organisation of Semantics every time I open it. When you're looking for how a given mechanism (e.g., conneg, partial content) works, it's very confusing to have to bounce between parts of s 6, s 8, s 10 and sometimes s 9.
I think the document would read far more easily and logically (especially in the text-only rendering) if we added four new top-level sections, with the content from the listed sections inserted (likely with some rearrangement):
I haven't suggested moving the status codes, as that would be more disruptive, and I think there isn't much value in doing so.
The text was updated successfully, but these errors were encountered: