HTTP协议指的是超文本传输协议,其建立在运输层TCP协议的基础上,利用互联网来进行传输超文本的一个应用层协议。
HTTP与HTTPS的区别
http与https均属于应用层协议,其中HTTPS协议经过了TLS和SSL加密,他们的不同点是:
1. HTTPS协议发送的内容是经过加密后的内容,而HTTP发送的是明文
2. HTTPS使用的是443端口,HTTP协议使用的是80端口
3. HTTPS需要证书认证,成本高,相对困难,但是安全性高
HTTP协议特点
1. 简单快速
2. 灵活,允许传输任意类型的数据对象
3. 无连接,请求响应后立刻断开连接
4. 无状态,协议对于事务处理没有记忆性,如果后续处理需要前边的信息需要进行重传
HTTP请求响应模型
HTTP协议永远是客户端发起请求,然后服务端予以相应,及请求-响应模式
请求响应步骤:
1. 客户端连接到web服务器,建立一个TCP连接
2. 发起HTTP请求,客户端通过TCP向服务端发送一个请求报文
3. 服务器接收请求并返回响应报文
4. 释放TCP连接
5. 客户端解析响应
请求报文方法:GET POST HEAD PUT DELETE
GET与POST的区别:
最主要的区别是,GET请求的参数是放置在URL中,而POST请求参数放在请求体中。因而导致下列区别:
1. GET请求在浏览器后退是没有关系的,POST会再次发出请求
2. GET产生的URL可以被收藏,而POST的不可以
3. GET请求的参数会出现在历史纪录中,POST不会
4. POST安全性更高
5. URL有长度限制,因此GET请求参数有长度限制,而POST没有
6. GET请求只能进行URL编码,POST支持多种编码方式
7. 对参数的类型,GET仅支持ASCII字符,POST没有限制
8. GET请求会被浏览器主动缓存,POST不会
网络状态码:
1XX: 表示请求成功接收,等待后续处理
2XX: 成功
3XX: 重定向相关
4XX: 客户端错误
5XX: 服务端错误
具体状态码:
200:请求成功
301:所请求页面已经转移到新的url上
302:所请求页面已经临时转移到新的url上
304:未修改,缓存相关,表示客户端缓存未过期,可以被继续使用
403:拒绝提供服务
404:访问资源不存在
500:服务器发生不可预期的错误
503:临时过载或宕机,一段时间后可能恢复正常
缓存相关
缓存分为强缓存和协商缓存,强缓存指的是强制使用客户端的缓存,只有当客户端的缓存过期后,才向服务器请求新数据
协商缓存指的是每一次使用缓存时,都向服务器询问是否使用客户端缓存
Cookie和Session
Cookie是存储的key-value字对,它是由服务器将Cookie添加到response里并一起返回给客户端,然后客户端会自动把response里的cookie接收下来,并且保存到本地,下一次发起请求的时候,就会把cookie附加到request里,服务器再根据request里的cookie遍历搜索是否有符合的信息
在web开发中,服务器会为每一个用户浏览器创建一个会话对象,在需要保存用户数据的时候,服务器程序可以把用户数据写入到session中
区别:
1. session存储在服务器中,cookie存储在客户端中
2. session中可以放置对象,如文件等,而cookie之恩呢保存字符串
3. session的实现需要结束cookie,session-id存储在cookie中返回,如果客户端完全禁止cookie,则session也会完全失效
参考博客:https://blog.csdn.net/qq_34495772/article/details/80525966