HTTP协议介绍(POST、GET、Content-Type)

什么是HTTP?
超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通信的协议。
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。html

GET 请求响应web

GET请求会显示请求指定的资源。通常来讲GET方法应该只用于数据的读取。 GET会方法请求指定的页面信息,并返回响应主体,GET被认为是不安全的方法,由于GET方法会被网络蜘蛛等任意的访问。 使用GET方法时,查询字符串(键值对)被附加在URL地址后面一块儿发送到服务器: /test/demoform.html?name1=value1&name2=value2 特色: GET请求可以被缓存 GET请求会保存在浏览器的浏览记录中 以GET请求的URL可以保存为浏览器书签 GET请求有长度限制 GET请求主要用以获取数据

POST 发送数据给服务器处理json

POST 发送数据给服务器处理,数据包含在HTTP信息正文中 POST请求会向指定资源提交数据,请求服务器进行处理,如:表单数据提交、文件上传等,请求数据会被包含在请求体中。 POST方法可能会建立新的资源或/和修改现有资源。 使用POST方法时,查询字符串在POST信息中单独存在,和HTTP请求一块儿发送到服务器: POST /test/demoform.html HTTP/1.1 Host: w3schools.com name1=value1&name2=value2 特色: POST请求不能被缓存下来 POST请求不会保存在浏览器浏览记录中 以POST请求的URL没法保存为浏览器书签 POST请求没有长度限制

HEAD 与GET相同的响应,只要求响应表头跨域

HEAD 与GET相同的响应,只要求响应表头
HEAD方法与GET方法同样,都是向服务器发出指定资源的请求。可是,服务器在响应HEAD请求时不会回传资源的内容部分,即:响应主体。
这样,咱们能够不传输所有内容的状况下,就能够获取服务器的响应头信息。HEAD方法常被用于客户端查看服务器的性能。

PUT 上传文件。数组

PUT请求会身向指定资源位置上传其最新内容,PUT方法是幂等的方法。经过该方法客户端能够将指定资源的最新数据传送给服务器取代指定的资源的内容。

DELETE 删除文件浏览器

DELETE请求用于请求服务器删除所请求URI(统一资源标识符,Uniform Resource Identifier)所标识的资源。
DELETE请求后指定资源会被删除,DELETE方法也是幂等的。

CONNECT 将HTTP请求的链接转换成透明的TCP/IP通道缓存

CONNECT方法是HTTP/1.1协议预留的,可以将链接改成管道方式的代理服务器。一般用于SSL加密服务器的连接与非加密的HTTP代理服务器的通讯。

TRACE 追踪收到的请求安全

TRACE请求服务器回显其收到的请求信息,该方法主要用于HTTP请求的测试或诊断。

OPTIONS 返回服务器所支持的HTTP请求的方法服务器

OPTIONS请求与HEAD相似,通常也是用于客户端查看服务器的性能。 这个方法会请求服务器返回该资源所支持的全部HTTP请求方法,该方法会用'*'来代替资源名称,向服务器发送OPTIONS请求,能够测试服务器功能是否正常。 JavaScript的XMLHttpRequest对象进行CORS跨域资源共享时,就是使用OPTIONS方法发送嗅探请求,以判断是否有对指定资源的访问权限。 

这里还有一种架构风格:RESTful。REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,好比 web 应用程序。
REST 指的是一组架构约束条件和原则。知足这些约束条件和原则的应用程序或设计就是 RESTful。网络

HTTP 协议是以 ASCII 码传输,创建在 TCP/IP 协议之上的应用层规范。 规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。相似于下面这样: <method> <request-URL> <version>
<headers>
<entity-body> 数据使用什么编码方式,开发者彻底能够本身决定消息主体的格式,只要最后发送的 HTTP 请求知足上面的格式就能够。 可是,数据发送出去,还要服务端解析成功才有意义。 服务端一般是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。

Form中常见的enctype 属性

application/x-www-form-urlencoded 浏览器的原生 <form> 表单,若是不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。 提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。 multipart/form-data 浏览器的原生 <form> 表单,须要设置 enctype 属性,表单上传文件时,必须让 <form> 表单的 enctyped 等于 multipart/form-data。

Ajax中常见的Content-Type

application/json 用来告诉服务端消息主体是序列化后的 JSON 字符串。 JSON.stringify(str);//将JSON对象转化为JSON字符
JSON.parse(str); //由JSON字符串转换为JSON对象
JSON 对象 var user = { "firstName":"Jason" , "lastName":"Hua" } user.firstName //访问数据
JSON 数组 var department = { "employees": [ { "firstName":"Jason" , "lastName":"Hua" }, { "firstName":"Jason" , "lastName":"Hua" } ], "department": "Dev" } department.employees[0].firstName //访问数据

Http  Content-Type对照表:http://tool.oschina.net/commons

相关文章
相关标签/搜索