HTTP(Hyper Text Transfer Protocol,超文本传输协议)
- HTTP报文结构
HTTP请求由状态行、请求头、请求正文三部分组成:
状态行:包括请求方式Method、资源路径URL、协议版本Version;
请求头:包括一些访问的域名、用户代理、Cookie等信息;
请求正文:就是HTTP请求的数据。
这里就涉及到GET请求和POST请求的区别: GET:将参数附在URL后面,以?隔开,参数之间用&连接,传送的数据量小,<=2KB。 POST:将参数放在包体里,安全性更高,传送的数据量较大,默认为无限制。
HTTP响应也由状态行、响应头、响应正文三部分组成:
状态行:包括协议版本Version、状态码Status Code、回应短语;
响应头:包括搭建服务器的软件,发送响应的时间,回应数据的格式等信息;
响应正文:就是响应的具体数据。
这里又涉及到常用状态码的含义:
200---OK/请求已经正常处理完毕
301---/请求永久重定向
302---/请求临时重定向
304---/请求被重定向到客户端本地缓存
400---/客户端请求存在语法错误
401---/客户端请求没有经过授权
403---/客户端的请求被服务器拒绝,一般为客户端没有访问权限
404---/客户端请求的URL在服务端不存在
500---/服务端永久错误
503---/服务端发生临时错误
- HTTP与HTTPS的区别。
HTTPS是HTTP+SSL构建的可进行加密传输、身份认证的网络协议,要比http协议安全。 - HTTP访问网页的过程。
(1)客户端在浏览器中输入要访问的域名地址;
(2)浏览器通过DNS查找域名对应的IP地址;
(3)与对应的服务器建立TCP连接(三次握手);
(4)将用户的请求装入http数据包,通过建立的tcp连接发送给服务器,等待数据返回;
(5)服务器返回数据,比如说一个html页面;
(6)客户端关闭HTTP连接,TCP四次挥手。
HTTPS的握手过程图:
- HTTP 1.0与HTTP 1.1的区别。
1、HTTP 1.0中浏览器与服务器只保持短暂的连接,浏览器的每次请求都与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。
2、HTTP 1.1提供永久性连接(即1.0使用非持久连接,HTTP1.0没有host的字段).
3、HTTP 1.1中增加Host请求头字段后,实现了在一台WEB服务器上可以在同一个IP地址和端口号上使用不同的主机名来创建多个虚拟WEB站点。
4、HTTP 1.1提供身份认证(HTTP1.1提供一个基于口令的基本认证方式,) - HTTP长连接和短连接。
短连接:每次请求一个资源就建立连接,请求完成后连接立马关闭。每次请求都经过“创建tcp连接->请求资源->响应资源->释放连接”这样的过程;
长连接:只建立一次连接,多次资源请求都复用该连接,完成后关闭。