HTTP 协议
http协议
http类型
1、http:http(超文本传输协议)是一个基于请求与响应模式的,无状态,应用层的协议。传输的内容是明码传输,http默认的端口号是80
2、https:https是有ssl+http协议构建成,可以进行加密传输,毕http安全。https默认端口443
http的简要
http版本
1、http0.9版本
2、http1.0版本
get请求:请求指定的页面信息,并返回实体主体
post请求:向指定资源提交数据进行处理
head请求:类似get请求,不过响应没有具体内容,用于获取报头
3、http1.1版本
option请求:允许客户端查看服务器的性能
put请求:从客户端向服务器传送的数据取代指定文档内容
delete请求:请求服务器删除指定的页面
trace请求:返回显示服务器收到的请求,主要用于测试或诊断
connect请求:预留给能够将连接改为管道方式的代理服务器
url的概要及组成
协议类型:http/https
主机地址或域名:host
端口号:port(http默认80,https默认443)
请求的路径:path(在域名后问号前)
分隔符号:?
参数:name=value(?后面的内容)
& (主要用于各个参数之间的分隔)
http的运行流程
DNS域名解析:每一个IP都会有对应的域名,DNS就是将IP和对应的域名进行一个关联和解析
建立TCP连接(通过三次握手进行连接)
1、客户端发送请求连接(SYN数据包)
2、服务器收到后,回传(SYN/ACK数据包)以表示确认信息
3、客户端回传一个(ACK数据包),表示握手结束
发送http请求:与服务器连接后,向服务器发送请求
服务器处理请求;服务器收到请求后,有Wed服务解释请求,通过分析后调动数据库信息,通过响应返回给客户端
返回响应请求:服务器回复客户端的请求
关闭TCP连接(通过四次挥手进行关闭)
1、客户端发送(FIN)数据包给服务器,表示数据传输完成
2、服务器回复(ACK)数据包给客户端,表示收到,并回复看看自己这边是否传输完毕
3、服务器发送(FIN)数据包给客户端,表示传输完成
4、客户端回复(ACK)数据包给服务器,表示收到
注意:客户端和服务器完成四次挥手后将关闭TCP连接,第四次挥手无论是否完成都将关闭连接
浏览器解析HTML:将传输的数据进行解析并生成DOM树或CSS树,然后通过DOM树和CSS树生成渲染树
浏览器布局渲染
经过渲染树将数据组合生成平常我们常用的网页
请求(request)
get请求和post请求的区别
get请求概念
get请求没有body,参数都存储在URL中
get请求是向服务器取数据
get请求没有post请求安全,因为get请求参数直接暴露在浏览器上
post请求概念
post请求的参数放在请求body中
post请求是向服务器提交数据
post请求相对于get请求安全性会高一点,因为post请求放在body中
请求的组成
请求行:包含了URL的信息以及http的版本和(post、get)请求方式
请求头:请求内容及信息
client(用户)
accept(接受)浏览器的可接受的媒体类型
Accept-language:语言
Accept-encoding:编码格式
User-agent:客户端类型
contet-Type:发送post时候,body的数据类型声明
第一种:application/json格式为:{"":"","":""}
第二种:application/x-www-form-urlencoded 格式为:name=vlaue&name=vlaue
第三种:multipart/form-data这是一种表单格式
第四种:text/xml这个主要用于文本及图片
状态
cookie:保存在浏览器中有大小限制,有时间限制(用来保持登录状态)
session:保存在服务器中,服务器有资源开销,分散式,跨系统不好实现
token:可以保存在客户端的任何地方,无限制,无状态,利于分布式部署
中间空行
请求body:请求里面的参数,get请求没有body
body的内容为post请求中的参数