HTTP简介
http协议服务器传输超文本到浏览器的传输协议,基于TCP/IP。
无持久连接,即一次只处理一个请求
无状态,不会记录之前的操作,若需要,必须重传。
工作原理
客户端-服务器模型,服务器端根据收到的请求向客户端发送响应消息
消息结构
客户端和服务端都是应用程序
使用URL传输和建立连接
请求头
- 请求行
- 请求头部
- 空行
- 请求参数
举例:
GET /hello.img HTTP/1.1 //请求行
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi //3个请求头部
//空行
mdeditor/a/ //请求参数
响应头
- 状态行
- 消息报头
- 空行
- 响应正文
举例:
HTTP:/1.1 200 OK //状态行
Date: Mon, 27 Jul 2009 12:28:53 GMT
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Accept-Ranges: bytes
Content-Length: 51
Content-Type: text/plain //5个消息报头
//空行
<!DOCTYPE html> //响应正文
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
…………………………
</body>
</html>
host referer origin介绍
在介绍之前先说IP和域名的对应关系:
1个IP地址可以对应多个域名:虚拟主机
1个域名对应多个IP地址:负载均衡
host是http1.1中的,http1.1版本必须指定此属性,一个IP地址可以对应多个域名,一台虚拟主机上只有一个IP地址,上面有很多网站,即多个域名,服务器根据host判断本次请求哪个网站。
referer是浏览器地址栏中的URL
origin是协议+端口+服务器主机名。