HTTP协议基础

一 http协议


url 完整结构
< screme>://< user>:< pwd>@< host>:< port>/< path>< params>?< query>#< frag>
(1.1)scheme 协议

常见协议默认端口号协议基本作用
FTP 21 文件上传下载
SSH 22 完全的远程登录
TELNET 23 远程登录
SMTP 25 邮件传输
DNS 53 域名解析
HTTP 80 超文本传输
POP3 110 邮件接收
HTTPS 443 加密传输的HTTPS

(1.2)< user>< pwd>

(1.3)< host>

主机名称:

127.0.0.1  IP地址

www.baidu.com  域名

表示了你要访问的服务器在网络上的具体的门牌号码

(1.4) port 端口号

127.0.0.1:8080

主机名      端口号

任何一个程序安装在电脑上都会自动生成一个端口号

在主机上,程序开启服务会对应一个唯一的端口号

端口号理论最大值:2^16-1(65535),0-1024系统占用了

(1.5)path 路径

资源在服务器上存放的具体位置

(1.6)params

跟踪状态的参数:cookie/session  保存跟踪状态的参数

(1.7)query:

get 方法提交请求时,问号后面的查询字符串

(1.8)# frag

锚点

2 HTTP协议

超文本传输协议---hypertext transform  protocol

规范了数据如何打包和传递的(专门用于传输html文件)

目前使用的版本---http/1.1

3 WEB请求的原理

浏览器DNS查询发送请求,DNS服务器把域名转换成IP地址发回给请求的浏览器.这时浏览器开始向服务器发送请求,服务器请求文件夹系统,或者请求数据库,又或者向其他服务器请求数据,最终发送给浏览器.

4 消息/报文message

是客户端与服务器端相关传递的数据块

这个数据块必须符合特定的格式,才能被彼此理解

(4.1)请求消息: Request Message(客户端发送给服务器的数据块)

(4.1.1)请求起始行

(4.1.1.1)请求方法

方法特点
get 无请求主体.客户端向服务器请求数据的时候使用.地址栏明文传参,查询字符串,后台req.query.uname. 
post 有请求主体.客户端向服务器提交数据的时候使用.通过请求主体传递数据,后台req.body.uname
put 向服务器发送文件的时候使用
delete 从服务器上删除资源的时候使用

option  |预请求(询问访问)

Restful API规则,利用http已有的4个方法(不算option)的四个方法定义了4个行为,使用这4个行为发送请求.

方法特点
get 查询数据时,无请求主体
post 新建时,有请求主体
put 修改时,有请求主体
delete 删除时,无请求主体

(4.1.1.2)协议版本号

HTTP1.1

(4.1.1.3)请求的URL

url

(4.1.2)请求头

①host:www.baidu.com

告诉服务器,我请求的主机名称

②Connection:Keep-alive

告诉服务器,请开启持久链接

③User-Agent:

告诉服务器,我这个浏览器的类型和版本号

④Accept-Encoding:

告诉服务器,浏览器可以接收的压缩文件的类型

⑤Accept-Language:zh-CN

告诉服务器,我这个浏览器可以接收的自然语言的类型

⑥refer:http://www.tmooc.cn

告诉服务器,当前请求是源于哪个页面

(4.1.3)请求主体

form-data:

uname=abc&upwd=123456

加上问号就是查询字符串

(4.2)响应消息: Response Message

服务器发送给客户端的数据块

(4.2.1)响应起始行

①协议版本号:http/1.1

②响应状态码:响应状态码

③原因短句:对响应状态码的简短解释

(4.2.2)响应头信息

①Date:告诉浏览器,响应的时间

Tue, 31 Dec 2019 05:05:15 GMT

②Connection:Keep-alive

告诉服务器,已经开启持久链接

③Content-Type:告诉浏览器,响应的主体类型是什么

类型对应
text/html 响应回来的数据是html文本
text/css 响应回来的数据是css文本
text/plain 响应回来的是普通文本
application/javascript 响应回来的是一个js文件
application/xml 响应回来的是xml字符串
application/json 响应回来的是json字符串
image/jpg | png | gif 响应回来的是图片

(4.2.3)响应主体

服务器传送给浏览器的数据

5  缓存

客户端将服务器响应回来的数据进行自动保存,再次访问时就直接使用缓存的数据.

缓存的优点:

①减少冗余的数据传输,节省客户端流量

②节省服务器带宽

③降低了对服务器资源的消耗和运行的要求

④降低了由于远距离传输而造成的加载延迟

缓存的原理

①请求--无缓存--连接服务器--存缓存--客户端渲染

②请求--有缓存--够新鲜--使用缓存--客户端渲染

③请求--有缓存--不够新鲜--链接服务器确认是否过期--没过期--更新缓存新鲜度--客户端渲染

④请求--有缓存--过期--链接服务器--存缓存--客户端渲染

(1)与缓存相关的消息头

(需要前后端配合)

Catch-Control:max-age=0s

从服务器将文档传到客户端上时起,此文档处于新鲜的秒数,0就是不缓存

前端设置缓存消息:

< meta http-equiv="Catct-Control" content="max-age=3600">

所有的请求消息都可以通过meta设置:

语法:   < meta http-equiv="消息头属性名称" content=>

6 HTTP性能优化

http的链接过程

发起请求--建立链接--服务器处理请求--访问资源--构建响应--发送响应--记录日志

http链接优化原则:

①减少链接创建的次数(开启持久链接)

②减少请求的次数(代码设计更合理)

③提高服务器端的运行速度

④尽可能减少响应数据的长度

7 HTTPS:安全的http协议

S:ssl

①客户端发送请求---ssl层加密---服务器接收到加密文件---ssl层解密---服务器端得到请求明文,对请求做出处理

②服务器响应数据---ssl层加密---客户端接收到加密文件---ssl层解密---客户端得到响应明文,解析执行响应的内容

原文地址:https://www.cnblogs.com/codexlx/p/12461748.html