HTTP数据请求与响应

来源:互联网 发布:php程序员发展方向 编辑:程序博客网 时间:2024/04/28 21:46
  1. HTTP简介

    • HTTP是一种超文本传输协议( HyperText Transfer Protocol ) ;

    • HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议;

    • 在TCP/IP体系结构中,HTTP属性应用层协议,位于TCP/IP的顶层;

    • HTTP是一种无状态的协议,即客户端与服务器端不建立持久的连接;

    • HTTP遵循“请求/响应”模型

  2. HTTP事务处理

    1. 建立链接

    2. 客户端发送HTTP请求

    3. 服务器端响应,生成结果并回发

    4. 服务器端关闭连接,客户端解析回发的响应,恢复页面

  3. HTTP请求的格式

    HTTP请求由4部分组成:请求行、请求头标、空行、请求数据

    1. 请求行由3个标记组成:请求方法、请求URL、HTTP版本(它们之间用空格分开)

      HTTP规范定义了8种可能的请求方法:

      GET检索URI中标识资源的一个简单请求HEAD与GET方法相同,服务器只返回状态行和头标,并不返回请求文档POST服务器接受被写入客户端输出流中的数据的请求PUT服务器保存请求数据作为指定URI新内容的请求DELETE服务器删除URI中命名的资源的请求TRACE关于服务器支持的请求方法信息的请求CONNECT已文档化但当前未实现的一个方法,预留做隧道处理
    2. 请求头标由key:value键值对组成,每行一对;通知服务器有关客户端的功能和标识

    3. 空行  发送回车符和退行,表明服务器以下不再有头标

    4. 请求数据  HTML文档和图像等,也就是HTML本身

  4. Web开发中,浏览器使用form属性method设置的方法将表单中的数据传递给服务器进行处理。方法有POST和GET两种。

    • 如果采用 POST 方法,浏览器将会按照以下两步来发送数据。

      首先,浏览器将与action 属性中指定的表单处理服务器建立联系,一旦建立连接之后,浏览器就会按分段传输的方法将数据发送给服务器。

      在服务器端,一旦 POST 样式的应用程序开始执行时,就应该从一个标志位置读取参数,而一旦读到参数,在应用程序能够使用这些表单值以前,必须对这些参数进行解码。用户特定的服务器会明确指定应用程序应该如何接受这些参数。

    • 如果采用GET 方法,这时浏览器会与表单处理服务器建立连接,然后直接在一个传输步骤中发送所有的表单数据:浏览器会将数据直接附在表单的action URL 之后。这两者之间用问号进行分隔。

    • 根据POST、GET的特点和实际项目中的需求来确定用何种方法。

    1. 如果希望获得最佳表单传输性能,可以采用 GET 方法发送只有少数简短字段的小表单。

    2. 一些服务器操作系统在处理可以立即传递给应用程序的命令行参数时,会限制其数目和长度,在这种情况下,对那些有许多字段或是 很长的文本域的表单来说,就应该采用 POST 方法来发送。

    3. 如果你在编写服务器端的表单处理应用程序方面经验不足,应该选择 GET 方法。如果采用 POST 方法,就要在读取和解码方法做些额外的工作,也许这并不很难,但是也许你不太愿意去处理这些问题。

    4. 如果安全性是个问题,那么我们建议选用 POST 方法。GET 方法将表单参数直接放在应用程序的 URL 中,这样网络窥探者可以很轻松地捕获它们,还可以从服务器的日志文件中进行摘录。如果参数中包含了信用卡帐号这样的敏感信息,就会在不知不觉中危及用户的安全。而 POST 应用程序就没有安全方面的漏洞,在将参数作为单独的事务传输给服务器进行处理时,至少还可以采用加密的方法。

    5. 如果想在表单之外调用服务器端的应用程序,而且包括向其传递参数的过程,就要采用 GET 方法,因为该方法允许把表单这样的参数包括进来作为 URL 的一部分。而另一方面,使用 POST 样式的应用程序却希望在 URL 后还能有一个来自浏览器额外的传输过程,其中传输的内容不能作为传统 <a> 标签的内容。

    6. post提交的数据量理论上没有限制,get有限制。

原创粉丝点击