目录

  • 1.什么是HTTP协议?
  • 2.HTTP协议的版本
  • 3.HTTP1.0和HTTP1.1的区别
  • 4.HTTP请求
  • 4.1 HTTP请求包括的内容
  • 4.2 HTTP请求的细节之请求行
  • 4.3 HTTP请求的细节之消息头
  • 5.HTTP响应
  • 5.2 HTTP响应的细节之状态行
  • 5.3 HTTP响应细节之常用响应头


1.什么是HTTP协议?

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。它是TCP/IP协议的一个应用层协议 注:TCP/IP: 传输层与网络层协议,负责将数据包可靠地传递。 http协议需要依赖TCP/IP来传递数据包。

简单来说,HTTP协议就是客户端和服务器交互的一种通迅的格式。

例子:在浏览器点击一个链接,浏览器就为我打开这个链接的网页。

原理:当在浏览器中点击这个链接的时候,浏览器会向服务器发送一段文本,告诉服务器请求打开的是哪一个网页。服务器收到请求后,就返回一段文本给浏览器,浏览器会将该文本解析,然后显示出来。这段文本就是遵循HTTP协议规范的。

2.HTTP协议的版本

HTTP协议的版本:HTTP/1.0、HTTP/1.1

3.HTTP1.0和HTTP1.1的区别

HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源【短连接,获取资源后就断开连接】

HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源【保持连接】

4.HTTP请求

4.1 HTTP请求包括的内容

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

一个完整的HTTP请求包括如下内容:一个请求行、若干消息头、以及实体内容

java gopher协议 java 协议解析_HTTP

4.2 HTTP请求的细节之请求行

请求行中的GET称之为请求方式,请求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT,常用的有: GET、 POST

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

不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上:如果请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:GET /mail/1.html?name=abc&password=xyz HTTP/1

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

如果请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。

4.3 HTTP请求的细节之消息头

HTTP请求中的常用消息头

Accept: text/html,image/* 浏览器告诉服务器,它支持的数据类型
Accept-Charset: ISO-8859-1 浏览器告诉服务器,它支持哪种字符集
Accept-Encoding: gzip,compress 浏览器告诉服务器,它支持的压缩格式
Accept-Language: en-us,zh-cn 浏览器告诉服务器,它的语言环境
Host: www.it315.org:80浏览器告诉服务器,它的想访问哪台主机
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT浏览器告诉服务器,缓存数据的时间
Referer: http://www.it315.org/index.jsp 浏览器告诉服务器,客户机是从那个页面来的—反盗链
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 浏览器告诉服务器,浏览器的内核是什么
Cookie 浏览器告诉服务器,带来的Cookie是什么
Connection: close/Keep-Alive  浏览器告诉服务器,请求完后是断开链接还是保持链接
Date: Tue, 11 Jul 2000 18:23:51 GMT浏览器告诉服务器,请求的时间

java gopher协议 java 协议解析_服务器_02

5.HTTP响应

一个HTTP响应代表服务器向客户端回送的数据,它包括: 一个状态行、若干消息头、以及实体内容 。

java gopher协议 java 协议解析_数据_03

5.2 HTTP响应的细节之状态行

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

举例:HTTP/1.1 200 OK

状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:

java gopher协议 java 协议解析_服务器_04

5.3 HTTP响应细节之常用响应头

HTTP响应中的常用响应头(消息头):

Location: 服务器通过这个头,来告诉浏览器跳到哪里
Server:服务器通过这个头,告诉浏览器服务器的型号
Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
Content-Language: 服务器通过这个头,告诉浏览器语言环境
Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
Refresh:服务器通过这个头,告诉浏览器定时刷新
Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
Expires: -1  控制浏览器不要缓存
Cache-Control: no-cache  
Pragma: no-cache