HTTP笔记分享

HTTP协议(无状态协议)是什么?

超文本传输协议(HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。

设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。

Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的。所以Http连接是一种短连接,是一种无状态的连接。故也将其称为”无状态协议“,解决方法为通过 1、Cookie    2、通过Session  会话保存。

什么是HTTPS?

      HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是设计了SSL(Secure Sockets Layer)协议,用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定义在RFC 6101中,之后IETF对SSL 进行了升级,于是出现了TLS(Transport Layer Security) 1.0,定义在RFC 2246。实际上我们现在的HTTPS都是用的TLS协议,但是由于SSL出现的时间比较早,并且依旧被现在浏览器所支持,因此SSL依然是HTTPS的代名词。

HTTP与HTTPS的区别

1. HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头

2. HTTP 是不安全的,而 HTTPS 是安全的

3. HTTP 标准端口是80 ,而 HTTPS 的标准端口是443

4. 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层

5. HTTP 无法加密,而HTTPS 对传输的数据进行加密

6.HTTP无需证书,而HTTPS 需要CA机构颁发的SSL证书

HTTP状态码

1xx:信息响应类,表示接收到请求并且继续处理

2xx:处理成功响应类,表示动作被成功接收、理解和接受

3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理

4xx:客户端错误,客户请求包含语法错误或者是不能正确执行

5xx:服务端错误,服务器不能正确执行一个正确的请求

Cookie、localStorage基础知识

       在实际业务场景中,会要求用户在页面A进行账号登陆,然后在页面B进行访问时,识别出该用户已经登陆的身份。所以需要把之前在页面A登陆的信息保存起来,而HTTP协议并没有该功能,所以就引入了Cookie技术。

       Cookie会根据从服务端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。

       服务端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录(Session),最后得到之前的状态信息。所以这里你可以知道Cookie和Session的区别,首先是存放位置,其次是安全性和持久性(存放在服务端的Session更为安全和持久)

       Cookie是可以覆盖的,如果重复写入同名的Cookie,那么将会覆盖之前的Cookie。如果要删除某个Cookie,只需要新建一个同名的Cookie,并将maxAge设置为0,并添加到response中覆盖原来的Cookie。

       在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。

       localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空。

注意:localstorage有很大局限性,详细说明可以查看网址:https://www.cnblogs.com/st-leslie/p/5617130.html

常用的HTTP方法有哪些?

★ GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器

★ POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。

★ PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。

★ HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。

★ DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。

★ OPTIONS:查询相应URI支持的HTTP方法。

GET方法与POST方法的区别

1. get重点在从服务器上获取资源,post重点在向服务器发送数据;

2. get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?"连接,多个请求数据间用"&"连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的;post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;

3. Get传输的数据量小,因为受URL长度限制,但效率较高;Post可以传输大量数据,所以上传文件时只能用Post方式;

4. get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等;post较get安全性较高; 

5. get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。post支持标准字符集,可以正确传递中文字符。 

HTTP优化方案

★ TCP复用:TCP连接复用是将多个客户端的HTTP请求复用到一个服务器端TCP连接上,而HTTP复用则是一个客户端的多个HTTP请求通过一个TCP连接进行处理。前者是负载均衡设备的独特功能;而后者是HTTP 1.1协议所支持的新功能,目前被大多数浏览器所支持。

★ 内容缓存:将经常用到的内容进行缓存起来,那么客户端就可以直接在内存中获取相应的数据了。

★ 压缩:将文本数据进行压缩,减少带宽

★ SSL加速(SSL Acceleration):使用SSL协议对HTTP协议进行加密,在通道内加密并加速

★ TCP缓冲:通过采用TCP缓冲技术,可以提高服务器端响应时间和处理效率,减少由于通信链路问题给服务器造成的连接负担。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值