一.概念
超文本传输协议(HTTP,HyperText Transfer Protocol )是互联网上最为广泛的一种网络协议。用于定义客户端和浏览器之间交换数据的过程。
二.学习目的
HTTP是java开发的基础。每一个请求和响应是web开发的最基本操作。是javaweb重中之中的学习知识要点。
三.HTTP协议的作用和特点
Ⅰ.作用
可以使浏览器和服务器之间更高效的传输数据。他不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪一部分内容首先显示(比如文本先于图形)等。
Ⅱ.特点
基于请求→响应模型,先有请求后又响应。
如图:
四.HTTP超文本传输协议的组成
Ⅰ.请求协议
包括了请求行、请求头、请求体
Ⅱ.响应协议
包括了响应行、响应头、响应体
五.HTTP请求
概要说明
客户端连上服务器后,想服务器请求某个web资源。称之为客户端向服务器端发送的一个请求。
请求包括了请求行,请求头,请求体。
请求头和请求体之间内容要用空行隔开。
Ⅰ.请求行
例:
hhtp:POST / post.html HTTP/1.1
请求行格式 请求方式 资源路径 协议 /版本
Ⅱ.HTTP常见请求方式(POST GET DELETE PUT)
①GET:向服务器的特定资源发出一个查询的请求 ,一般用于查询数据和资源的请求中(例如京东商城,搜索物品)
a.get请求查询参数可以在浏览器中的地址栏中显示
b.请求的数据会附加在URL上,以?分割URL和传输数据,多个参数用&链接
c.没有请求体(数据放入类URL中国)
例:
http://GET/ get.html?id=60157&cid=617 HTTP/1.1
②POST:向服务器提交数据,一般用于客户端将本地资源或者数据提交给服务器。最常见的比如:注册用户,将用户信息提交给服务器。
a.POST请求会把数据放在请求体中
例:http://POST/post.html HTTP/1.1
数据 name=yanggang&password=123456
Ⅲ.请求头
请求头用于描述客户端的哪一天主机,以及客户端的一些环境信息等。请求以键值对(key=value)方式传递数据
Ⅳ.请求体
代表浏览器在服务器以键值对的方式传递给服务器的参数,参数都以键值对(key=value)的方式表示,多个值同样以&链接
服务器在接受到数据后需要在后台进行单独的解析。
例:
name=yanggang&password=123456
Ⅴ.总结对比
GET一般用于查询操作,POST一般用于提交操作。
HTTP协议中没有对请求行的长度做规定限制,但在实际开发中。不同浏览求对URL长度有自己的规范,所以数据交大时一般用POST协议。
六.HTTP的响应
HTTP响应代表客户端向服务器端发出请求后,服务器端向客户端会送的某个数据。
六.HTTP响应
一个HTTP响应代表客户端向服务器端会送的数据,它包括,一个响应行、若干个响应头、以及响应体,其中一些响应头和响应体都是可选的。响应头和响应体的内容之间要用空行隔开。
Ⅰ.响应行
HTTP协议的版本 描述服务器对请求的结果
例:
HTTP/1.1 200 OK
状态码 :服务器和浏览器之间用于确定状态的固定数字号码
200:请求成功
302:请求重定向
404:请求资源不存在,通常访问路径写错类,或者服务器删除了该资源
500:服务器内部发生错误
Ⅱ.响应头
响应头用于描述服务器的基本信息,以及数据的描述。服务器通过这些描述信息,可以通知客户端如何处理等一会它会送过来的数据。
Ⅲ.响应体
代表服务器端向浏览器端会送的正文。