美文网首页网络知识&&编程开发
HTTP协议与HTML表单(再谈GET与POST的区别)

HTTP协议与HTML表单(再谈GET与POST的区别)

作者: 5421a329aae7 | 来源:发表于2017-06-07 18:56 被阅读34次

    HTTP的GET/POST方式有何区别?这是一个老生常谈的问题,但老生常谈的问题往往有一些让人误解的结论。本文将带您浅尝HTTP协议,在了解HTTP协议的同时将会展示许多被人们忽视的内容。在掌握了HTTP协议的过程中我们将自然而然地了解到GET与POST的本质区别。

    在Web服务中,信息一般是使用HTML格式以超文本和超媒体方式传送的,所使用的Internet协议是HTTP协议。 1、HTML HTML 释为超文本标记语言(全称是Hypertext Markup Language),是用于WWW上文档的格式化语言。使用HTML语言可以创建文本文档,该文档可以从一个平台移植到另一个平台。HTML文件是带有嵌入代码(由标记表示)的ASCII文本文件,它用来表示格式化和超文本链接。HTML文件的内容通过一个页面展示出来,不同页面通过超链接关联起来。 2、HTTP HTTP意为超文本传输协议(全称是Hypertext Transfer Protocol)。是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等(如文本先于图形显示)。这就是我们为什么在浏览器中看到的网址都是以“http://”开头的原因。

    HTTP请求

    从使用者的角度看,一个HTTP请求起始于
    用户端浏览器上输入的一个URL地址;
    网页中的一个超链接;
    提交一个HTML表单。
    但本质上说,一个HTTP请求起始于用户端向HTTP服务器发送的一个URL请求。

    一个标准的HTTP请求由以下几个部分组成

    <request-line>
    <headers>
    <CRLF>
    [<request-body><CRLF>]

    在HTTP请求中,第一行是请求行(request-line),用来说明请求类型、要访问的资源(URL)以及使用的HTTP版本;
    紧接着是多行头部(headers)信息,用来说明服务器要使用的附加信息;
    头部信息之后是一个回车换行符(/r/n),用于标明头部信息的结束。
    以上是必须内容,根据需要可在头部信息结束之后增加主体数据(request-body);
    主体数据之后是一个回车换行符(/r/n),用于标明主体数据的结束。

    需要注意的是

    请求行(request-line)中的URL部分必须以application/x-www-form-urlencoded方式编码。
    主体数据(request-body)的编码方式由头部(headers)信息中的Content-Type指定。
    主体数据(request-body)的长度由头部(headers)信息中的Content-Length指定。

    例如,我们可以在IE浏览器上输入下面的网址:

    http://localhost:8000/hello/index.html

    HTTP请求的头部信息如下:

    GET /hello/index.html HTTP/1.1
    Accept: */*
    Accept-Language: zh-cn
    Accept-Encoding: gzip, deflate
    Host: localhost:8000
    Connection: Keep-Alive
    Cookie: JSESSIONID=BBBA54D519F7A320A54211F0107F5EA6
    

    END

    上述信息没有request-body部分,这是以GET方式发送的HTTP请求。如果请求中需要附加主体数据,即增加request-body部分,则必须使用POST方式发送HTTP请求。HTML超链接(<a></a>)只能用GET方式提交HTTP请求,HTML表单(<form></form>)则可以使用两种方式提交HTTP请求。

    相关文章

      网友评论

        本文标题:HTTP协议与HTML表单(再谈GET与POST的区别)

        本文链接:https://www.haomeiwen.com/subject/kzeafxtx.html