HTTP协议与HTTPS协议~

一、HTTP请求方法

最基本的有4种,分别是GET、POST、PUT、DELETE.

1、GET--------最常见的一种请求方式

当客户端要从服务器中读取文档时,当点击网页上的链接或者通过在浏览器的地址栏输入网址来浏览网页的,使用的都是GET方式。
GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。

GET方式的请求一般不包含”请求内容”部分,请求数据以地址的形式表现在请求行。

如果需要传送大量数据的时候,不适合使用GET方式。

2、POST

对于上面提到的不适合使用GET方式的情况,可以考虑使用POST方式,因为使用POST方法可以允许客户端给服务器提供信息较多。POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,这样POST方式对传送的数据大小没有限制,而且也不会显示在URL中。

POST方式请求行中不包含数据字符串,这些数据保存在”请求内容”部分,各数据之间也是使用”&”符号隔开。
POST方式大多用于页面的表单中。因为POST也能完成GET的功能,因此多数人在设计表单的时候一律都使用POST方式,其实这是一个误区。
GET方式也有自己的特点和优势,我们应该根据不同的情况来选择是使用GET还是使用POST。

Get和Post方法的区别

区别:get请求无消息体,只能携带少量数据;post请求有消息体,可以携带大量数据

携带数据的方式:get请求将数据放在url地址中; post请求将数据放在消息体中

GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中; 
GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

3、PUT:向指定资源位置上传其最新内容

4、DELETE:请求服务器删除Request-URL所标识的资源

二、响应状态码

Response 消息中的第一行叫做状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。

状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response.

HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别

1XX  提示信息 - 表示请求已被成功接收,继续处理

2XX  成功 - 表示请求已被成功接收,理解,接受

3XX  重定向 - 要完成请求必须进行更进一步的处理

4XX  客户端错误 -  请求有语法错误或请求无法实现

5XX  服务器端错误 -   服务器未能实现合法的请求 

常见状态码=======》

1、200 OK

最常见的就是成功响应状态码200了, 这表明该请求被成功地完成,所请求的资源发送回客户端

2、302 Found

重定向,新的URL会在response 中的Location中返回,浏览器将会自动使用新的URL发出新的Request

2、304 Not Modified

代表上次的文档已经被缓存了, 还可以继续使用

3、400 Bad Request 

客户端请求与语法错误,不能被服务器所理解

4、403 Forbidden

服务器收到请求,但是拒绝提供服务

5、404 Not Found

请求资源不存在(输错了URL)

6、500 Internal Server Error

服务器发生了不可预期的错误

7、503 Server Unavailable

服务器当前不能处理客户端的请求,一段时间后可能恢复正常 

三、HTTP1.0版本与1.1版本之间的区别?

长连接

HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP 1.1默认支持长连接。

节约带宽

HTTP 1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,否则返回401。

客户端如果接收到100,才开始把请求body发送到服务器。如果收到401,客户端就可以不用发送请求body了,节约了带宽。

另外HTTP 1.1 还支持传送内容的一部分。这样当客户端已经有一部分的资源后,只需要跟服务器请求另外的部分资源即可。这是支持文件断点续传的基础。

HOST域

目前 apache/tomcat/nginx 都支持设置虚拟主机,可基于域名共用同一IP和端口。

HTTP1.0是没有host域的,HTTP1.1才支持这个参数。

四、HTTP1.1与HTTP2.0版本的区别?

多路复用

HTTP 2.0 使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP 1.1 大了好几个数量级。

当然HTTP 1.1 也可以多建立几个TCP连接,来支持处理更多并发的请求,但是创建TCP连接本身也是有开销的。

TCP连接有一个预热和保护的过程,先检查数据是否传送成功,一旦传输成功,则慢慢加大传输速度。因此对应瞬时并发的连接,服务器的响应就会变慢。所以最好能使用一个建立好的连接,并且这个连接可以支持瞬时并发的请求。

数据压缩

HTTP 1.1 不支持header数据的压缩,HTTP 2.0 使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。

服务器推送

当我们对支持HTTP 2.0 的web server请求数据的时候,服务器会顺便把一些客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取。这种方式非常合适加载静态资源。

服务器端推送的这些资源其实存在客户端的某处地方,客户端直接从本地加载这些资源就可以了,不用走网络,速度自然是快很多的。

五、HTTP以及HTTPS之间的区别?

1、HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。

2、HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有传输的内容都经过加密的。

3、HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、HTTPS可以有效的防止运营商劫持,解决了防劫持的一个大问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值