一.http简介
简介:超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而 [9] 消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
二.http详情
2.1tpht是超文本传输协议,它是基于Tcp之上的应用层协议(osi七层)
1.1 基于请求响应--》服务端不能主动给客户端推送消息---》websocket协议
HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并 返回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有 接收到请求之前不会发送响应
1.2 无状态无连接---》不能做会话保持---》才出现了cookie,session,token
HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议 自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个 级别,协议对于发送过的请求或响应都不做持久化处理。
使用HTTP协议,每当有新的请求发送时,就会有对应的新响应产 生。协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把HTTP协议设计成 如此简单的。可是,随着Web的不断发展,因无状态而导致业务处理变得棘手 的情况增多了。比如,用户登录到一家购物网站,即使他跳转到该站的 其他页面后,也需要能继续保持登录状态。针对这个实例,网站为了能 够掌握是谁送出的请求,需要保存用户的状态。HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能, 于是引入了Cookie技术。有了Cookie再用HTTP协议通信,就可以管 理状态了
2.2详情
-请求协议:
请求首行:请求方式(get,post,delete),请求地址,请求http协议版本号/r/n
请求头:key:value (cookie,useragent,referer,x-forword-for)
请求体:编码方式
-响应协议:
响应首行:http协议版本,响应状态码(1xx,2xx),响应单词描述
响应头:key:value (cookie,响应编码。。。) 跨域问题的响应头(自己设置的响应头)
响应体:html格式:浏览器中看到的 json格式给客户端使用
版本
1.0:每次TCP连接只能发送一个请求(默认短链接),当服务器响应后就会关闭这次连接,下一个请求需要再次建立TCP连接,就是不支持keep-alive
1.1:引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用,支持keep-alive
三.http和https的区别
3.1http:超文本传输协议
1.数据传输是明文
2.无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作
3.无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接
4.简单快速、灵活
5.通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性
6.默认端口80
3.2https:安全超文本传输协议
1.数据传输是密文
2.基于HTTP协议,通过SSL提供加密处理数据、验证对方身份以及数据完整性保护
3.内容加密:采用混合加密技术,中间者无法直接查看明文内容
4.验证身份:通过证书认证客户端访问的是自己的服务器
5.保护数据完整性:防止传输的内容被中间人冒充或者篡改
6.默认端口443