1、 什么是http协议无状态协议?怎么解决http协议无状态协议?
(1)无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息
(2)无状态协议解决方法:通过1、cookie 2、通过session会话保存
2、http报文由什么组成?
请求报文包括:
(1)请求行:包含请求方法,URL、http版本协议
(2)请求首部字段
(3)请求内容实体
响应报文包括:
(1)状态行:包括http版本、状态码、状态码原因短语
(2)响应首部字段
(3)响应内容实体
3、http协议实现的原理机制
整个流程步骤
域名解析--》发起tcp的三次握手--》发起http请求--》服务器响应http请求--》浏览器解析html代码,并请求html代码中的资源--》浏览器对页面进行渲染呈现给用户
4、常用的http方法有哪些?
GET:用于请求访问已经被URI识别的资源,可以通过URL传参给服务器
POST:用于传输信息给服务器,主要功能与get方法类似,但一般推荐使用POST方式
PUT:传输文件,报文主体中包含文件内容,保存到对于URI位置。
HEAD:获得报文首部,与get方法类似,只是不返回报文主体,一般用于验证URI是否有效
DELETE:删除文件,与PUT方法类似,删除对应URI位置的文件
OPTIONS:查询相应URI支持的HTTP方法
5、POST与GET的区别
(1)get在浏览器回退时是无害的,而post会再次请求
(2)get产生的url地址可以被收藏,而post不会
(3)get请求会被浏览器主动缓存,而post不会,除非手动设置
(4)get只能进行url编码,而post支持多种编码
(5)get请求参数会被完整保留在浏览器历史记录里,而post中的参数不会被保留
(6)get请求在url中传送的长度有限制,而post没有
(7)get的参数直接暴露在url上,所以不能用于传递敏感参数
(8)get产生一个TCP数据包,post产生两个tcp包(对于get,浏览器会把http header和data一起发送出去,服务器响应200;而对于post,浏览器先发送header,服务器响应100continue,浏览器再发送data,服务器响应200ok)
6、http请求常见的状态码
(1)2开头,表示成功处理了请求的状态代码
200 (成功)服务器已成功处理了请求
(2)3开头(请求被重定向)表示要完成请求,需要进一步操作
302(临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
304(未修改)自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容
(3)4开头(请求错误)
400(错误请求)服务器不理解请求的语法
401(未授权)请求要求身份验证
403(禁止)服务器拒绝请求
404(未找到)服务器找不到请求的网页
(4)5开头(服务器错误)
500(服务器内部错误)
502(错误网关)服务器作为网关或代理,从上游服务器收到无效响应
505(http版本不支持)
7、http与https有什么区别?
(1)https协议需要ca申请认证书,一般免费的较少
(2)http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议
(3)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,厚泽是443
(4)http的连接很简单,是无状态的,https协议是由ssl+http协议构建的可进行加密传输,身份认证的网络协议,比http安全
8