Java Web程序设计------HTTP协议

2.2HTTP协议

2.2.1HTTP概述

1.HTTP介绍

HTTP  超文本传输协议  hyper text transfer protocol ,它是一种请求/响应式的协议,HTTP的特点

(1)支持客户端(浏览器就是一种web客户端)/服务器模式

(2)简单快速,客户端向服务器请求服务时只需传送请求方式和路径

http1.0:

http1.1:无需等待结果就可发送下一个请求  按请求顺序依次返回。

2.2.2HTTP请求消息

一个完整的请求消息是由请求行+请求头+实体内容三部分组成。

1.HTTP请求行:

包括三部分  请求方式、资源路径、所用的HTTP版本

GET/index.html HTTP/1.1

GET       

POST     向指定资源提交数据,请求服务器进行处想(例如提交表单或者上传文件)

OPTIONS              

HEADPUT

DELETE

RACE

CONNECT  请求查询服务器的性能或者查询与资源相关的选项和需求

(1)GET方式   裸奔

      当用户在浏览器地址栏中直接输入某个URL地址或者单击网页上的一个超链接时,浏览器将使用GET方式发送请求。如果将网页上的form表单的method属性设置为“GET” 或者不设置method属性(默认值是GET),当用户提交表单时,浏览器也将使用GET方式发送请求。

      如果浏览器请求的URL中有参数部分,在浏览器生成的请求消息中,参数部分将附加在请求行中的资源路径后面。先来看一个URL地址,具体如下。

      http://www . itcast .cn/javaForum?name=lee&psd-hnxy

      当浏览器向服务器发送请求消息时,上述URL中的参数部分会附加在要访问的URI资源后面,具体如下所示。

      GET/javaorum?name=lee&psd=hnxy HTTP/1.1   

      需要注意的是,使用GET方式传送的数据量有限,最多不能超过2KB

2)POST方式(长度无限制,更安全)隐藏在实体中。

      如果网页上om表单的mtd属性设置为POST当用户提交表单时,浏流器将使用POST方式提交表单内容,并把各个表单元素及数据作为HTTP消息的实体内容发送给服务器,而不是作为UR地址的参数传速

POST /javaForum HTTP/1.1   协认版本
Host: www.itcast.cn           主机名
Content-Type: application/x-www- form-urlencoded
Content-Length: 17
name=lee&psd=hnxy

  • POST传输数据大小无限制

      由于GET请求方式是通过请求参数传递数据的,因此最多可传适方式是通过实体内容传递数据的,因此可以传递数据的大小没有限

  • POST比GET请求方式更安全

      由于GET请求方式的参数信息都会在URL地址栏明文显示,而隐藏在实体内容中,用户是看不到的,因此,POST比GET请求方式

 2. HTTP请求消息头

      在HTTP请求消息中,请求行之后便是若干请求消息头。请求消递附加消息,例如(客户端可以接收的数据类型、压缩方法、语言以8I面的URL地址等信息)

(1)Accpet  用于指出客户端程序能够处理的MIME类型

(2)Accpet-Enconding  指出客户端能够进行解码的编码方式

(3)Host  指出资源所在的主机名和端口号

2.2.3HTTP响应消息

当服务器收到浏览器的请求后,会回送响应消息给客户端。一个完整的响应消息以应包括响应状态行、响应消息头和实体内容

1. HTTP响应状态行

HTP响成状态行于响应消息的第1行它包括3个部分,分别是http版本、表示成功或失败的三位整数代码(状态码)、对状态码描述的文本信息,具体示例如下,
HTTP/1.1 200 OK
上面的示例就是一一个HTTP响应消息的状态行,其中HTP 1.1是通信使用的协议后本200是状态码),OK是状态描述,说明客户端请求成功。需要注意的是,请求行中的每个部分需要用空格分隔,最后要以回车换行结束。

状态代码由 3位数字组成,表示请求是否被理解或被满足。HTTP响应状态码的第1个数字定义了响应的类别,后面两位没有具体的分类,第1个数字有5种可能的取值,具体介组如下所示。

  • 1xx:表示请求已接收,需要继续处理。
  • 2xx:表示请求已成功被服务器接收、理解并接受。
  • 3xx;为完成请求,客户端需进一步细化请求。
  • 4xx:客户端的请求有错误。
  • 5xx;服务器端出现错误。

猜你喜欢

转载自blog.csdn.net/Qmilumilu/article/details/85162174