Http协议使用总结

Http协议:用来规范请求与响应的数据格式!

WEB浏览器与WEB服务器之间的一问一答交互过程必须遵循一定的规则,这个规则就是HTTP协议。(客户端发送网络请求、服务器端返回响应结果)

HTTPHyperText Transfer Protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程数据本身的格式。(用于规定请求与响应的数据格式)

 

HTTP协议的版本

HTTP/1.0HTTP/1.1

HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。

 

HTTP1.0的基本运行方式

基于HTTP协议的客户/服务器模式的信息交换过程,如图所示,它分四个过程,建立连接、发送请求信息、发送响应信息、关闭连接

1) 浏览器与WEB服务器的连接过程是短暂的,每次连接只处理一个请求和响应。对每一个页面的访问,浏览器与WEB服务器都要建立一次单独的连接。

2) 浏览器到WEB服务器之间的所有通讯都是完全独立分开的请求和响应。  (已经过时了,需要持续连接,所以出现心跳检测)

 

HTTP1.1的特点(最重要的特点是:持续连接

1)在一个TCP连接上可以传送多个HTTP请求和响应。

2)多个请求和响应过程可以重叠

3)增加了更多的请求头和响应头,比如HostIf-Unmodified-Since请求头等。

————————————————————————————————>

HTTP请求消息(发送求情)

1)客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。

2一个完整的HTTP请求包括如下内容:

3)一个请求行、若干消息头、以及请求正文,其中的一些消息头和正文都是可选的,消息头和正文内容之间要用空行隔开。

请求行用于描述客户端的请求方式,getpost、请求的资源名称(url地址),以及使用的HTTP协议版本号。

 

HTTP响应消息

1)一个HTTP响应代表服务器向客户端回送的数据

2)一个完整的HTTP响应包括如下内容:

3一个状态行、若干消息头、以及响应正文,其中的一些消息头和正文都是可选的,消息头和正文内容之间要用空行隔开。响应码。状态行用于描述服务器对请求的处理结果

例如:HTTP/1.1 200 OK

多个消息头:消息头用于描述服务器的基本信息,以及数据的描述,服务器通过这

些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。

实体内容:代表服务器向客户端回送的数据。

————————————————————————————————>

HTTP请求的细节——请求行(请求行、请求头)

请求行格式:请求方式 资源路径 HTTP版本号<CRLF>

举例:GET /temp3o116.shtml HTTP/1.1

请求方式:GETPOSTHEADOPTIONSDELETETRACEPUT

用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。

不管POSTGET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上。(数据传递方式不一样)

GET方式

如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据多个数据之间以&进行分隔,例如:

GET /mail/1.html?name=abc&password=xyz HTTP/1.1

GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K

POST方式

如请求方式为POST方式,则可以在请求的正文内容中向服务器发送数据Post方式的特点:传送的数据量无限制。(提交文件)

 

请求头字段用于客户端在请求消息中向服务器传递附加信息,主要包括客户端可以接受的数据类型(MIME类型)、压缩方法、语言以及发出请求的超链接所属页面的URL地址等信息。

常用请求头:

Accept: 浏览器可接受的MIME类型

Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集

Accept-Encoding: 浏览器能够进行解码的数据编码方式,比如gzip

Accept-Language: 浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。 可以在浏览器中进行设置。

Host: 初始URL中的主机和端口

Referer: 包含一个URL,用户从该URL代表的页面出发访问当前请求的页面

Content-Type: 内容类型

User-Agent: 浏览器类型.

Content-Length: 表示请求消息正文的长度

Connection: 表示是否需要持久连接。如果服务器看到这里的值为“Keep -Alive”,或者看到请求使用的是HTTP 1.1HTTP 1.1默认进行持久连接

Cookie: 这是最重要的请求头信息之一

DateDate: Mon, 22 Aug 2011 01:55:39 GMT请求时间GMT

————————————————————————————————>

HTTP响应的细节——状态行(响应行、响应头)

状态行格式: HTTP版本号 状态码 原因叙述<CRLF>

举例:HTTP/1.1 200 OK

状态码用于表示服务器对请求的各种不同处理结果和状态,它是一个三位的十进制数。响应状态码分为5类,使用最高位为15来进行分类。

常用状态码:

200(正常)表示一切正常,返回的是正常请求结果

302/307(临时重定向)指出被请求的文档已被临时移动到别处,此文档的新的URLLocation响应头中给出。

304(未修改)表示客户机缓存的版本是最新的,客户机可以继续使用它,无需到服务器请求。

404(找不到)服务器上不存在客户机所请求的资源。

500(服务器内部错误)服务器端的程序发生错误。

 

响应头字段用于向客户端传递附加信息

常用响应头

Location: http://www.it315.org/index.jsp指示新的资源的位置

Server: apache tomcat指示服务器的类型

Content-Encoding:  gzip服务器发送的数据采用的编码类型

Content-Length:  80 告诉浏览器正文的长度

Content-Language:  zh-cn服务发送的文本的语言

Content-Type: text/html; charset=GB2312 服务器发送的内容的MIME类型

Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT文件的最后修改时间

Refresh: 1; url=http://www.it315.org指示客户端刷新频率。单位是秒



 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值