1.HTTP简介
HTTP主要特点:
- 支持客户/服务器模式:浏览器通过URL向服务端发送请求,服务器端根据收到的请求向客户端发送响应信息
- 简单快速:客户端只需传送请求方法(get/set/post)和路径
- 灵活:允许传输任意类型的对象
- 无连接:限制每次连接只处理一个请求:服务器处理完客户的请求并收到客户的应答之后即断开连接,节省传输时间。
- 从http1.1开始默认使用长连接:服务器需要等待一定时间后才断开连接
- 无状态:协议对于事务处理没有记忆能力,后续处理需要前面的信息则必须被重传
HTTP请求结构
HTTP响应结构
1.客户端连接到web服务器:浏览器与服务器端口建立TCP套接字连接
2.发送HTTP请求:通过TCP套接字,客户端向服务器端发送一个文本的请求报文
3.服务器接受请求并返回HTTP响应:web服务器解析该请求,并为其请求资源,将资源副本写到TCP套接字,由客户端读取
4.释放TCP连接
5.客户端浏览器解析HTML内容
在浏览器地址栏键入URL,按下回车之后经历的流程
答案:
1.DNS解析:浏览器根据URL逐层查询DNS服务器缓存(浏览器缓存->系统缓存->路由缓存->IPS服务器缓存->根域名服务器缓存->顶级域名服务器缓存),解析URL中的域名所对应的IP地址
2.TCP连接:根据找到的IP地址和对应端口(80)和服务器建立TCP连接(三次握手)
3.发送HTTP请求:浏览器发出读取文件的Http请求给服务器
4.服务器对浏览器请求作出响应,并把带有html文本的http响应报文发送给浏览器
5.浏览器收到html,在显示窗口内渲染页面
6.浏览器释放TCP连接(四次挥手)
HTTP常见状态码
GET请求和POST请求的区别
HTTP报文层面:GET将请求信息放到URL,POST放到报文体中,浏览器会对get方式的URL有长度限制
数据库层面:GET符合幂等性(对数据库的一次操作或多次操作获得的结果是一致的)和安全性(对数据库的操作没有改变数据库中的数据),POST不符合
其他层面:GET请求可以被缓存到浏览器的浏览记录和书签中,而POST不行
Cookie和Session的区别
Cookie--浏览器
Session--服务器端机制
2.HTTP和HTTPS的区别
HTTPS简介
在HTTP下面加入了SSL层:从而具有了保护数据交换隐私,完整性,对网站服务器身份认证的功能
SSL(在TCP和各应用层之间)
在HTTP协议中:不管是GET还是POST,客户端与服务器端没有任何身份确认过程,数据全部明文传输,容易被黑客截获
HTTPS在进行数据传输之前,web浏览器和网站服务器会进行一次握手,握手时确定双方的加密密码信息
HTTP和HTTPS的区别