对于Http的简单理解

什么是 HTTP协议:

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

HTTP的特点:

1.支持客户/服务器模式。

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

(看了上面的介绍会不会觉得很懵逼呢?这些基础的感念其实在书本上都可以找到,没什么技术含量在面试中你也不可能给面试官背这些东西吧,先别说你背起来很麻烦,再就是面试官也不想听这些。
我的回答是:其实简单点来说http就是超文本传输协议,然后他是明文传输的(这点可以不说,因为扯了这一点面试官可能就会问你:http是明文传输的可能会照成数据不安全,该怎么办?这个时候你就要开始扯get和post了。那么什么是get?什么是post?首先呢,get和post是http的两种传输方式。

1)GET:获取资源
GET方法用来请求访问已被URL识别的资源

2)POST:传输实体主体
POST方法用来请求服务器传输信息实体的主体

然后就是既然扯到了get和post那么他们之间的区别就肯定少不了要说了,所以说回答时一定要小心不要给自己挖坑。

然后简单的说一下GET和POST的区别:

首先,使用目标不同:GET方法只是用来查询,不会对浏览器上的信息产生影响,每次GET的方法都是相同的

其次,大小不同:GET是放在URL首部,因此大小随着浏览器而定,而POST则是在报文中,只要没有具体限制,文件的大小是没限制的

然后,安全性不同:GET采用的是明文传输,而POST是放在报文内部,无法看到

从使用场景的角度来说,一般像用户注册登录这种信息都是私密的,采用POST,而针对查询等,为了快速,大多采用GET传输。

这是两者之间的一个比较图:
这里写图片描述
扯完get和post之后,如果面试官问还有什么其他的方式那么你就可以说一下https。如果没问那么就此打住,当然了如果你想展示一下自己那你就随意好了,关于https我会在下面说到)

,它是基于TCP的,http的特点可以分为5点

1、支持客户/服务器模式 。2、简单快速。3、灵活。4、无连接。5、无状态。
因为http是基于TCP的所以http也就准守通过三次握手建立连接,四次握手解除连接。
如果问的比较浅显的话说这些就可以了。)

什么是HTTPS:

既然扯到了http那么https也有很大的可能被问到。那么什么是https呢?

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

从上面的描述我们可以得出:简单点来说HTTPS就是HTTP的安全版。也就是HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。(这时有人可能会问什么是SSL呢?其实很简单

SSL协议(Secure Socket Layer 安全套接字层)位于可靠的面向连接的网络层协议和应用层协议之间的一个协议层。
SSL通过互相认证,使用数字签名保证完整性,使用加密确保私密性,以实现客户端和服务器之间的安全通信,该协议由两层组成,SSL记录协议和SSL握手协议。
它的主要作用:
1.认证用户和服务器,确保数据发送到正确的客户端或者服务器。
2.加密数据以防数据中途被窃取。
3.维护数据的完整性,确保数据在传输过程中不被更改。)

HTTPS的作用:

HTTPS的主要作用可以分为两种:
1、建立一个信息安全通道,来保证数据传输的安全;
2、确认网站的真实性,凡是使用了 https 的网站,都可以通过点击浏览器地址栏的 锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询 。

HTTP和HTTPS的区别:

既然说到了http和https那么他们之间的区别肯定要提一下简单点来说HTTPS和HTTP的区别主要为以下四点:
1、https协议需要到ca申请证书,一般免费证书很少,需要交费。
2、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
(这里只是做了一些简单的区别的比较,当然了如果大家想深入了解可以去问一下度娘有兴趣的可以去看看这篇博客 http://www.cnblogs.com/wqhwe/p/5407468.html

TCP与UDP

之前在上面有说过HTTP是基于TCP的所以它会有三次握手建立连接以及四次握手解除连接。那么什么是TCP?这里就不详说了因为有很多大牛已经解释过了我也就不做过多言语了有兴趣的朋友可以这看看很详细
http://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html
(适合初学者)

这次就写到这了因为是第一次写博客所以写的有点乱,希望各位可以见谅。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值