1.超文本传输协议http是基于TCP/IP协议之上的应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。
2.http是无状态的协议(即不保存状态),HTTP协议自身不具备保存之前发送过的请求或响应的功能,也就是说同一个客户端的这次请求和上次请求是没有对应关系的;
3.http协议是用于从www(万维网)服务器传输超文本到本地浏览器的传送协议;
4.http协议通常承载于TCP协议之上,安全超文本传输协议https协议即为http协议承载于TLS或安全套接字层SSL协议层之上,http协议假定其下层协议(如:TCP/IP协议)提供可靠的传输,http效率更高,https安全性更高;
5.默认http协议使用端口号为80,https使用端口443;
6.HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求;
7.HTTP是无连接:无连接的含义是限制每次连接只处理一个请求;
8.工作流程(HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接)
(1)客户端和服务端建立连接:http客户端(通常是浏览器)与服务器指定端口(一般为80)建立一个TCP套接字连接;
(2)客户端发送一个请求给服务端,请求由请求行、请求头部、空行和请求数据4部分组成;
实例:
GET /hello.txt 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)服务端接收请求,并返回http响应,响应由状态行、消息报头、空行和响应数据4部分组成;
实例:
注:1.常见的http状态码
- 200 - 请求成功
- 301 - 资源(网页等)被永久转移到其它URL
- 404 - 请求的资源(网页等)不存在
- 500 - 内部服务器错误
2.http content-type:一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,Content-Type 标头告诉客户端实际返回的内容的内容类型;
(4)客户端接收响应信息,将返回信息通过浏览器窗口显示在用户的显示屏上;
(5)客户端和服务端断开连接;
例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:
-
浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
-
解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
-
浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
-
服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
-
释放 TCP连接;
-
浏览器将该 html 文本并显示内容;
9.http协议通信流程(其中CGI程序使网页具有交互功能)
10.http协议的九种请求类型
11.超文本协议http的统一资源定位符(URL,Uniform Resource Locator),包含从因特网获取信息的五个基本元素
(1)协议
(2)服务器
(3)网络端口号,默认不展示
(4)URI,对应资源路径
(5)查询
12. http效率更高,https安全性更高