SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
PUT & DELETE
why html form doesn’t support ?
2014/4/12
Jack
● id: Jxck
● github: Jxck
● twitter: jxck_
● about: http://jxck.io
● blog: http://d.hatena.ne.jp/jxck
● Love: music
spec and status
Form
form - method attr
<form
action="http://example.com/users"
method="post">
<label for="name">name: </label>
<input type="text" id="name">
<input type="submit" value="send">
</form>
I’m wondering...
https://twitter.com/Jxck_/status/447663659511054336
Discussing on TL
http://togetter.com/li/646275
History of Web
... HTTP/0.9
1996/ 5 HTTP/1.0 (GET,POST,HEAD)
1997/ 1 HTTP/1.1 (+ PUT,DELETE etc)
1997/12 HTML 4.0 (GET,POST)
1997/12 HTML 4.01 (GET,POST)
2000/ 1 XHTML 1.0
2003/11 XForms 1.0 (GET,POST,PUT)
2008/ 1 HTML 5 (GET,POST)
2009/10 XForms 1.1 (+ DELETE)
2010/11 XHTML 1.1
...
HTML 4.01 (spec)
method = get|post [CI]
This attribute specifies which HTTP method will
be used to submit the form data set. Possible
(case-insensitive) values are "get" (the default)
and "post". See the section on form submission
for usage information.
http://www.w3.org/TR/html401/interact/forms.html#adef-method
HTML 4.0.x
● Usage
○ before Ajax, XHR, REST
○ “JavaScript off” on browser
● Security
○ on Server Side
○ apache case
■ http://www.apacheweek.com/features/put
● Form Spec
○ action attr is static
○ no header handling from form
○ behavior for response
● No UseCases, No Needs
History of Web
... HTTP/0.9
1996/ 5 HTTP/1.0 (GET,POST,HEAD)
1997/ 1 HTTP/1.1 (+ PUT,DELETE etc)
1997/12 HTML 4.0 (GET,POST)
1997/12 HTML 4.01 (GET,POST)
2000/ 1 XHTML 1.0
2003/11 XForms 1.0 (GET,POST,PUT)
2008/ 1 HTML 5 (GET,POST)
2009/10 XForms 1.1 (+ DELETE)
2010/11 XHTML 1.1
...
XForm 1.1 (spec)
11.9.3 The put Submission Method
This submit method represents HTTP PUT or the
equivalent concept (such as writing to a local file). The
serialized form data is delivered as the message body.
11.9.4 The delete Submission Method
This submit method represents HTTP DELETE or the
equivalent concept (such as deleting a local file). The
serialized form data is delivered in the same manner as the
getsubmission method (see 11.9.1 The get Submission
Method).
http://www.w3.org/TR/2009/REC-xforms-20091020/#submit-put
XForm
● more rich Form by XML
○ lots of new feature
○ no depends on JavaScript
○ XForm 1.1 supports PUT, DELETE
● XHTML2.0 includes XForm
○ finished working
○ to HTML5
○ no implementation
● XHTML2.0 Finished ;(
History of Web
... HTTP/0.9
1996/ 5 HTTP/1.0 (GET,POST,HEAD)
1997/ 1 HTTP/1.1 (+ PUT,DELETE etc)
1997/12 HTML 4.0 (GET,POST)
1997/12 HTML 4.01 (GET,POST)
2000/ 1 XHTML 1.0
2003/11 XForms 1.0 (GET,POST,PUT)
2008/ 1 HTML 5 (GET,POST)
2009/10 XForms 1.1 (+ DELETE)
2010/11 XHTML 1.1
...
HTML 5 (spec)
http://www.w3.org/TR/html5/forms.html#attr-fs-method
The method and formmethod content
attributes are enumerated attributes with the
following keywords and states:
●The keyword get, mapping to the state GET,
indicating the HTTP GET method.
●The keyword post, mapping to the state
POST, indicating the HTTP POST method.
HTML5
● After Ajax, XHR, REST(like rails)
● JavaScript has benefits
● Discussion on @W3C bug 10671
from Julian:
consider adding support for PUT and DELETE
as form methods
from Chair:
"it doesn't make much sense
with forms either" by Hixie
it’s not period
But
Continue in Public-HTML-Comments
● Enhance http request generation from forms
○ https://www.w3.org/html/wg/tracker/issues/195
○ long discussion
● HTML Form HTTP Extensions
○ http://cameronjones.github.io/form-http-
extensions/index.html by Cameron Jones
○ supports full HTTP/1.1 method
○ supports HTTP Authenticate
○ add payload attribute
○ WIP now
○ will WGFD and will be in HTML5.1?
HTML Form HTTP Extensions
by Cameron Jones: http://cameronjones.github.io/form-http-extensions/index.html
Example - PUT
<form action="http://www.example.com/cms/hogmanay" method="PUT">
<input name="If-Unmodified-Since"
type="hidden"
value="Tue, 1 Jan 2013 12:00:00 GMT"
payload="_header"/>
<textarea name="content">
// content
</textarea>
<button type="submit">Update</button>
</form>
Example - Basic Auth Login
<form action="http://www.example.com/login" method="POST">
<label for="_username_">Username</label>
<input name="_username_" type="text"/>
<label for="_password_">Password</label>
<input name="_password_" type="password"/>
<button type="submit">Login</button>
</form>
Example - Mail
<form action="mailto:">
<label for="to">To</label>
<input name="to" type="email" payload="_action"/>
<label for="cc">Cc</label>
<input name="cc" type="email" payload="_header"/>
<label for="subject">Subject</label>
<input name="subject" type="text" payload="_header"/>
<label>Content</label>
<textarea size="50"/>
<button type="submit">Send</button>
</form>
Conclusion
Conclusion
● History
○ HTML4.x: No UseCase, No Needs
○ XForm: XHTML2.0 Finished
○ HTML5: Make No Sence
● Draft
○ Discussing Now
○ Extend Form SPEC by Cameron
○ http://cameronjones.github.io/form-http-
extensions/index.html
○ Will include in HTML5.1 ?
More Detail
http://jxck.hatenablog.com/entry/why-form-dosent-support-put-delete
thanks :)
END

Contenu connexe

Similaire à Why HTML Form dose not support PUT & DELETE ?

Tuning web performance
Tuning web performanceTuning web performance
Tuning web performanceGeorge Ang
 
Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web PerformanceEric ShangKuan
 
Peter lubbers-html5-overview-sf-dev-conf-2011
Peter lubbers-html5-overview-sf-dev-conf-2011Peter lubbers-html5-overview-sf-dev-conf-2011
Peter lubbers-html5-overview-sf-dev-conf-2011Peter Lubbers
 
Component Framework Primer for JSF Users
Component Framework Primer for JSF UsersComponent Framework Primer for JSF Users
Component Framework Primer for JSF UsersAndy Schwartz
 
GTAC: AtomPub, testing your server implementation
GTAC: AtomPub, testing your server implementationGTAC: AtomPub, testing your server implementation
GTAC: AtomPub, testing your server implementationDavid Calavera
 
Facebook Development with Zend Framework
Facebook Development with Zend FrameworkFacebook Development with Zend Framework
Facebook Development with Zend FrameworkBrett Harris
 
いま使われているHTML5と、これからのHTML5
いま使われているHTML5と、これからのHTML5いま使われているHTML5と、これからのHTML5
いま使われているHTML5と、これからのHTML5Sadaaki HIRAI
 
Struts2 course chapter 2: installation and configuration
Struts2 course chapter 2: installation and configurationStruts2 course chapter 2: installation and configuration
Struts2 course chapter 2: installation and configurationJavaEE Trainers
 
Http2.0 Guide 2013-08-14 #http2study
Http2.0 Guide 2013-08-14 #http2studyHttp2.0 Guide 2013-08-14 #http2study
Http2.0 Guide 2013-08-14 #http2studyJxck Jxck
 
Php 5.6 From the Inside Out
Php 5.6 From the Inside OutPhp 5.6 From the Inside Out
Php 5.6 From the Inside OutFerenc Kovács
 
SW Drupal Summit: HTML5+Drupal
SW Drupal Summit: HTML5+DrupalSW Drupal Summit: HTML5+Drupal
SW Drupal Summit: HTML5+DrupalJen Simmons
 
XML Transformations With PHP
XML Transformations With PHPXML Transformations With PHP
XML Transformations With PHPStephan Schmidt
 

Similaire à Why HTML Form dose not support PUT & DELETE ? (20)

Tuning web performance
Tuning web performanceTuning web performance
Tuning web performance
 
Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web Performance
 
Peter lubbers-html5-overview-sf-dev-conf-2011
Peter lubbers-html5-overview-sf-dev-conf-2011Peter lubbers-html5-overview-sf-dev-conf-2011
Peter lubbers-html5-overview-sf-dev-conf-2011
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
 
Component Framework Primer for JSF Users
Component Framework Primer for JSF UsersComponent Framework Primer for JSF Users
Component Framework Primer for JSF Users
 
GTAC: AtomPub, testing your server implementation
GTAC: AtomPub, testing your server implementationGTAC: AtomPub, testing your server implementation
GTAC: AtomPub, testing your server implementation
 
Facebook Development with Zend Framework
Facebook Development with Zend FrameworkFacebook Development with Zend Framework
Facebook Development with Zend Framework
 
WWW and HTTP
WWW and HTTPWWW and HTTP
WWW and HTTP
 
Switch To Flex
Switch To FlexSwitch To Flex
Switch To Flex
 
Jsfsunum
JsfsunumJsfsunum
Jsfsunum
 
いま使われているHTML5と、これからのHTML5
いま使われているHTML5と、これからのHTML5いま使われているHTML5と、これからのHTML5
いま使われているHTML5と、これからのHTML5
 
Struts2 course chapter 2: installation and configuration
Struts2 course chapter 2: installation and configurationStruts2 course chapter 2: installation and configuration
Struts2 course chapter 2: installation and configuration
 
Http2.0 Guide 2013-08-14 #http2study
Http2.0 Guide 2013-08-14 #http2studyHttp2.0 Guide 2013-08-14 #http2study
Http2.0 Guide 2013-08-14 #http2study
 
Php 5.6 From the Inside Out
Php 5.6 From the Inside OutPhp 5.6 From the Inside Out
Php 5.6 From the Inside Out
 
RIA and Ajax
RIA and AjaxRIA and Ajax
RIA and Ajax
 
Ajaxppt
AjaxpptAjaxppt
Ajaxppt
 
Ajaxppt
AjaxpptAjaxppt
Ajaxppt
 
SW Drupal Summit: HTML5+Drupal
SW Drupal Summit: HTML5+DrupalSW Drupal Summit: HTML5+Drupal
SW Drupal Summit: HTML5+Drupal
 
XML Transformations With PHP
XML Transformations With PHPXML Transformations With PHP
XML Transformations With PHP
 
REST dojo Comet
REST dojo CometREST dojo Comet
REST dojo Comet
 

Plus de Jxck Jxck

Http2 on go1.6rc2
Http2 on go1.6rc2Http2 on go1.6rc2
Http2 on go1.6rc2Jxck Jxck
 
ORTC SVC SimulCast
ORTC SVC SimulCastORTC SVC SimulCast
ORTC SVC SimulCastJxck Jxck
 
HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2Jxck Jxck
 
Isomorphic Architecture & Interface
Isomorphic Architecture & InterfaceIsomorphic Architecture & Interface
Isomorphic Architecture & InterfaceJxck Jxck
 
HTTP2 RFC 発行記念祝賀会
HTTP2 RFC 発行記念祝賀会HTTP2 RFC 発行記念祝賀会
HTTP2 RFC 発行記念祝賀会Jxck Jxck
 
Extensible web #html5j
Extensible web #html5jExtensible web #html5j
Extensible web #html5jJxck Jxck
 
Extensible web
Extensible webExtensible web
Extensible webJxck Jxck
 
HTTP2Study chronicle #http2conf
HTTP2Study chronicle #http2confHTTP2Study chronicle #http2conf
HTTP2Study chronicle #http2confJxck Jxck
 
mozaicfm-ep8 #altJS @ll-diver
mozaicfm-ep8 #altJS @ll-divermozaicfm-ep8 #altJS @ll-diver
mozaicfm-ep8 #altJS @ll-diverJxck Jxck
 
Updates of socket.io@1.0
Updates of socket.io@1.0Updates of socket.io@1.0
Updates of socket.io@1.0Jxck Jxck
 
Next generation web talk @cross2014
Next generation web talk @cross2014Next generation web talk @cross2014
Next generation web talk @cross2014Jxck Jxck
 
Network server in go #gocon 2013-11-14
Network server in go  #gocon 2013-11-14Network server in go  #gocon 2013-11-14
Network server in go #gocon 2013-11-14Jxck Jxck
 
SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28
SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28
SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28Jxck Jxck
 
Gtug girls meetup web socket handson
Gtug girls meetup   web socket handsonGtug girls meetup   web socket handson
Gtug girls meetup web socket handsonJxck Jxck
 
Next generation web talk @cross2013
Next generation web talk @cross2013Next generation web talk @cross2013
Next generation web talk @cross2013Jxck Jxck
 
Nodefest2011-Live
Nodefest2011-LiveNodefest2011-Live
Nodefest2011-LiveJxck Jxck
 
Test it in Node.js
Test it in Node.jsTest it in Node.js
Test it in Node.jsJxck Jxck
 
Real Time App with Node.js
Real Time App with Node.jsReal Time App with Node.js
Real Time App with Node.jsJxck Jxck
 
I visited JSConf + NodeConf + Joyent
I visited JSConf + NodeConf + JoyentI visited JSConf + NodeConf + Joyent
I visited JSConf + NodeConf + JoyentJxck Jxck
 
Nodejs Introduction
Nodejs IntroductionNodejs Introduction
Nodejs IntroductionJxck Jxck
 

Plus de Jxck Jxck (20)

Http2 on go1.6rc2
Http2 on go1.6rc2Http2 on go1.6rc2
Http2 on go1.6rc2
 
ORTC SVC SimulCast
ORTC SVC SimulCastORTC SVC SimulCast
ORTC SVC SimulCast
 
HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2
 
Isomorphic Architecture & Interface
Isomorphic Architecture & InterfaceIsomorphic Architecture & Interface
Isomorphic Architecture & Interface
 
HTTP2 RFC 発行記念祝賀会
HTTP2 RFC 発行記念祝賀会HTTP2 RFC 発行記念祝賀会
HTTP2 RFC 発行記念祝賀会
 
Extensible web #html5j
Extensible web #html5jExtensible web #html5j
Extensible web #html5j
 
Extensible web
Extensible webExtensible web
Extensible web
 
HTTP2Study chronicle #http2conf
HTTP2Study chronicle #http2confHTTP2Study chronicle #http2conf
HTTP2Study chronicle #http2conf
 
mozaicfm-ep8 #altJS @ll-diver
mozaicfm-ep8 #altJS @ll-divermozaicfm-ep8 #altJS @ll-diver
mozaicfm-ep8 #altJS @ll-diver
 
Updates of socket.io@1.0
Updates of socket.io@1.0Updates of socket.io@1.0
Updates of socket.io@1.0
 
Next generation web talk @cross2014
Next generation web talk @cross2014Next generation web talk @cross2014
Next generation web talk @cross2014
 
Network server in go #gocon 2013-11-14
Network server in go  #gocon 2013-11-14Network server in go  #gocon 2013-11-14
Network server in go #gocon 2013-11-14
 
SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28
SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28
SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28
 
Gtug girls meetup web socket handson
Gtug girls meetup   web socket handsonGtug girls meetup   web socket handson
Gtug girls meetup web socket handson
 
Next generation web talk @cross2013
Next generation web talk @cross2013Next generation web talk @cross2013
Next generation web talk @cross2013
 
Nodefest2011-Live
Nodefest2011-LiveNodefest2011-Live
Nodefest2011-Live
 
Test it in Node.js
Test it in Node.jsTest it in Node.js
Test it in Node.js
 
Real Time App with Node.js
Real Time App with Node.jsReal Time App with Node.js
Real Time App with Node.js
 
I visited JSConf + NodeConf + Joyent
I visited JSConf + NodeConf + JoyentI visited JSConf + NodeConf + Joyent
I visited JSConf + NodeConf + Joyent
 
Nodejs Introduction
Nodejs IntroductionNodejs Introduction
Nodejs Introduction
 

Dernier

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Dernier (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

Why HTML Form dose not support PUT & DELETE ?

  • 1. PUT & DELETE why html form doesn’t support ? 2014/4/12
  • 2. Jack ● id: Jxck ● github: Jxck ● twitter: jxck_ ● about: http://jxck.io ● blog: http://d.hatena.ne.jp/jxck ● Love: music
  • 4. form - method attr <form action="http://example.com/users" method="post"> <label for="name">name: </label> <input type="text" id="name"> <input type="submit" value="send"> </form>
  • 7. History of Web ... HTTP/0.9 1996/ 5 HTTP/1.0 (GET,POST,HEAD) 1997/ 1 HTTP/1.1 (+ PUT,DELETE etc) 1997/12 HTML 4.0 (GET,POST) 1997/12 HTML 4.01 (GET,POST) 2000/ 1 XHTML 1.0 2003/11 XForms 1.0 (GET,POST,PUT) 2008/ 1 HTML 5 (GET,POST) 2009/10 XForms 1.1 (+ DELETE) 2010/11 XHTML 1.1 ...
  • 8. HTML 4.01 (spec) method = get|post [CI] This attribute specifies which HTTP method will be used to submit the form data set. Possible (case-insensitive) values are "get" (the default) and "post". See the section on form submission for usage information. http://www.w3.org/TR/html401/interact/forms.html#adef-method
  • 9. HTML 4.0.x ● Usage ○ before Ajax, XHR, REST ○ “JavaScript off” on browser ● Security ○ on Server Side ○ apache case ■ http://www.apacheweek.com/features/put ● Form Spec ○ action attr is static ○ no header handling from form ○ behavior for response ● No UseCases, No Needs
  • 10. History of Web ... HTTP/0.9 1996/ 5 HTTP/1.0 (GET,POST,HEAD) 1997/ 1 HTTP/1.1 (+ PUT,DELETE etc) 1997/12 HTML 4.0 (GET,POST) 1997/12 HTML 4.01 (GET,POST) 2000/ 1 XHTML 1.0 2003/11 XForms 1.0 (GET,POST,PUT) 2008/ 1 HTML 5 (GET,POST) 2009/10 XForms 1.1 (+ DELETE) 2010/11 XHTML 1.1 ...
  • 11. XForm 1.1 (spec) 11.9.3 The put Submission Method This submit method represents HTTP PUT or the equivalent concept (such as writing to a local file). The serialized form data is delivered as the message body. 11.9.4 The delete Submission Method This submit method represents HTTP DELETE or the equivalent concept (such as deleting a local file). The serialized form data is delivered in the same manner as the getsubmission method (see 11.9.1 The get Submission Method). http://www.w3.org/TR/2009/REC-xforms-20091020/#submit-put
  • 12. XForm ● more rich Form by XML ○ lots of new feature ○ no depends on JavaScript ○ XForm 1.1 supports PUT, DELETE ● XHTML2.0 includes XForm ○ finished working ○ to HTML5 ○ no implementation ● XHTML2.0 Finished ;(
  • 13. History of Web ... HTTP/0.9 1996/ 5 HTTP/1.0 (GET,POST,HEAD) 1997/ 1 HTTP/1.1 (+ PUT,DELETE etc) 1997/12 HTML 4.0 (GET,POST) 1997/12 HTML 4.01 (GET,POST) 2000/ 1 XHTML 1.0 2003/11 XForms 1.0 (GET,POST,PUT) 2008/ 1 HTML 5 (GET,POST) 2009/10 XForms 1.1 (+ DELETE) 2010/11 XHTML 1.1 ...
  • 14. HTML 5 (spec) http://www.w3.org/TR/html5/forms.html#attr-fs-method The method and formmethod content attributes are enumerated attributes with the following keywords and states: ●The keyword get, mapping to the state GET, indicating the HTTP GET method. ●The keyword post, mapping to the state POST, indicating the HTTP POST method.
  • 15. HTML5 ● After Ajax, XHR, REST(like rails) ● JavaScript has benefits ● Discussion on @W3C bug 10671 from Julian: consider adding support for PUT and DELETE as form methods from Chair: "it doesn't make much sense with forms either" by Hixie
  • 17. Continue in Public-HTML-Comments ● Enhance http request generation from forms ○ https://www.w3.org/html/wg/tracker/issues/195 ○ long discussion ● HTML Form HTTP Extensions ○ http://cameronjones.github.io/form-http- extensions/index.html by Cameron Jones ○ supports full HTTP/1.1 method ○ supports HTTP Authenticate ○ add payload attribute ○ WIP now ○ will WGFD and will be in HTML5.1?
  • 18. HTML Form HTTP Extensions by Cameron Jones: http://cameronjones.github.io/form-http-extensions/index.html
  • 19. Example - PUT <form action="http://www.example.com/cms/hogmanay" method="PUT"> <input name="If-Unmodified-Since" type="hidden" value="Tue, 1 Jan 2013 12:00:00 GMT" payload="_header"/> <textarea name="content"> // content </textarea> <button type="submit">Update</button> </form>
  • 20. Example - Basic Auth Login <form action="http://www.example.com/login" method="POST"> <label for="_username_">Username</label> <input name="_username_" type="text"/> <label for="_password_">Password</label> <input name="_password_" type="password"/> <button type="submit">Login</button> </form>
  • 21. Example - Mail <form action="mailto:"> <label for="to">To</label> <input name="to" type="email" payload="_action"/> <label for="cc">Cc</label> <input name="cc" type="email" payload="_header"/> <label for="subject">Subject</label> <input name="subject" type="text" payload="_header"/> <label>Content</label> <textarea size="50"/> <button type="submit">Send</button> </form>
  • 23. Conclusion ● History ○ HTML4.x: No UseCase, No Needs ○ XForm: XHTML2.0 Finished ○ HTML5: Make No Sence ● Draft ○ Discussing Now ○ Extend Form SPEC by Cameron ○ http://cameronjones.github.io/form-http- extensions/index.html ○ Will include in HTML5.1 ?