一、什么是HTTP协议
客户端和web服务器通讯,需要遵循一定的通讯格式。
HTTP(Hypertext transfer protocol)超文本传输协议,是TCP/IP协议的一个应用层协议,用于定义web浏览器和web服务器之间交互数据的过程。
二、HTTP请求方式
Get请求:在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔。URL地址后附带的参数有限制,大小不能超过1K。
Post请求:在请求的实体内容中向服务器发送数据。
三、HTTP请求
客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。
一个完整的HTTP请求包括如下内容:
一个请求行、若干消息头、以及请求正文。其中的一些消息头和正文都是可选的,消息头和正文内容之间要用空行隔开。
请求行:请求行用于描述客户端的请求方式、请求的资源名称,以及使用的HTTP协议版本号
消息头:消息头用于描述客户端请求哪台主机,以及客户端的一些环境信息等
HTTP请求中的常用消息头
Accept:浏览器通过这个头告诉服务器,它所支持的数据类型
Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
Host:浏览器通过这个头告诉服务器,想访问哪台主机
If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的防盗链
Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
四、HTTP响应
一个HTTP响应代表服务器向客户端回送的数据。
一个完整的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