HTTP问题

https://www.cnblogs.com/yinrw/p/10694474.html 

深入浅出HTTPS工作原理

https://blog.csdn.net/lvyibin890/article/details/82462041

https://www.cnblogs.com/zhangsanfeng/p/9125732.html

 

1、常用的HTTP方法有哪些?
GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器
POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。
HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。
OPTIONS:查询相应URI支持的HTTP方法。

2、GET方法与POST方法的区别
区别一:
get重点在从服务器上获取资源,post重点在向服务器发送数据;
区别二:
get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?"连接,多个请求数据间用"&"连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的;
post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;
区别三:
Get传输的数据量小,因为受URL长度限制,但效率较高;
Post可以传输大量数据,所以上传文件时只能用Post方式;
区别四:
get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等;
post较get安全性较高;
区别五:
get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。
post支持标准字符集,可以正确传递中文字符。

put 和  post 的区别:

PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。举个例子:如一个用于提交博文的URL,/addBlog。如果用PUT,则提交的URL会是像这样的”/addBlog/abc123”,其中abc123就是这个博文的地址。而如果用POST,则这个地址会在提交后由服务器告知客户端。目前大部分博客都是这样的。显然,PUT和POST用途是不一样的。具体用哪个还取决于当前的业务场景。

 

3、HTTP请求报文与响应报文格式
请求报文包含三部分:
a、请求行:包含请求方法、URI、HTTP版本信息
b、请求首部字段
c、请求内容实体
响应报文包含三部分:
a、状态行:包含HTTP版本、状态码、状态码的原因短语
b、响应首部字段
c、响应内容实体

7、HTTP的缺点与HTTPS
a、通信使用明文不加密,内容可能被窃听
b、不验证通信方身份,可能遭到伪装
c、无法验证报文完整性,可能被篡改
HTTPS就是HTTP加上加密处理(一般是SSL安全通信线路)+认证+完整性保护

8、HTTP优化

利用负载均衡优化和加速HTTP应用

利用HTTP Cache来优化网站

1、在浏览器键入URL,按下回车之后的流程是什么?

  (1)、DNS解析:浏览器会根据URL逐层查询DNS服务器缓存,解析出URL中的域名所对应的IP地址。DNS缓存分别有浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存。从上面的哪一级缓存查询到后直接返回IP地址,不再查询。

  (2)、TCP连接:在得到服务器的IP地址之后,就会尝试和服务器建立连接(具体内容可以看之前的博文TCP协议三次握手和四次握手

  (3)、发送HTTP请求:在浏览器和服务器之间建立好连接之后,浏览器就会发送HTTP请求报文

  (4)、服务器处理请求并返回HTTP报文:服务器返回给浏览器带有HTML的响应报文

  (5)、浏览器解析渲染页面

  (6)、浏览器释放连接,即TCP四次挥手。

 2、GET和POST区别

  先来看看请求方法有哪些:

  OPTIONS:返回服务器所支持的请求方法

  GET:向服务器获取指定资源

  HEAD:与GET一致,但是只返回响应头,不返回响应正文

  POST:向服务器提交数据,数据放在请求体里PUT 与POST相似,只是具有幂等特性,一般用于更新DELETE 删除服务器指定资源

  TRACE:回显服务器端收到的请求,测试的时候会用到这个

  CONNECT:预留,暂无使用

  而GET和POST作为最常用的两个请求方法,究竟区别在哪?

  1、最直观的就是GET会将请求的参数放在URL中,由于URL有长度限制,所以参数不能太多,而POST的参数是放在请求报文的正文中,长度没有限制。

  2、GET方式主要是对数据库进行查询,所以GET是符合幂等性(对数据库无论操作多少次返回的结果是一样的)和安全性(不修改数据库),而POST主要用于让数据库增加数据或者删除,修改数据,所以会有一定的安全性问题,需要对POST提交的参数做一些安全性检验。

  3、GET方式还能被缓存被存储,GET请求的URL会保存在浏览器的历史记录中,而缓存也是GET请求被广泛应用的根本,而POST方式除非手动设置,不然不会被缓存。

  4、GET方式下产生一个TCP数据包,POST产生两个数据包。对于GET方式,浏览器会把HTTP请求报文发出去,服务器响应200之后返回响应报文,而POST则是浏览器先发HTTP请求头,服务器响应100 continue之后浏览器再发从请求正文过去,服务器响应200并返回数据(但是在Firefox浏览器POST就只发一次数据包)

2、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机构wosign的颁发的SSL证书

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值