HTTP及其请求方式GET和POST

1 什么是HTTP

客户端和服务端之间,传输数据的格式规范,即“超文本传输协议”。

2 HTTP的特点

  1. 无状态
    无状态指,不记得之前处理过的事务。无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。
    例如同一个客户端第二次访问同一个服务器时,服务器的响应与第一次被访问时相同。因为服务器不记得曾经访问过或服务过这个客户端。
  2. 无连接
    HTTP虽然采用了TCP作为传输层协议,但是HTTP协议本身是无连接的,即客户端与服务端传输HTTP报文之前不需要先建立HTTP连接。

3 浏览器输入url按回车背后经历了哪些?

  1. 域名解析(DNS解析):将主机名转换为IP地址。
    在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址。
    .
    先看URL是否合法。
    查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。
    .
    浏览器缓存:浏览器会记录DNS一段时间,因此,只是第一个地方解析DNS请求;
    操作系统缓存:如果在浏览器缓存中不包含这个记录,则会使系统调用操作系统,获取操作系统的记录(保存最近的DNS查询缓存);
    路由器缓存:如果上述两个步骤均不能成功获取DNS记录,继续搜索路由器缓存;
    ISP缓存:若上述均失败,继续向ISP搜索。
  2. 建立TCP连接,通过三次握手。前两次握手完成后,HTTP请求作为第三次握手的内容发送给服务器。
  3. 服务端收到HTTP请求后,将请求的文档作为响应报文返回给客户。
  4. 浏览器解析HTML代码,请求HTML中的资源。
  5. 浏览器将获取的资源展现在页面中。

4 Http协议中有哪些请求方式?

GET: 请求URL标志的内容。
POST:传输信息给服务器(即给服务器添加信息,例如注释)。主要功能与GET方法类似,但一般推荐使用POST方式。
PUT: 在URL下存储一个文档。
DELETE:删除URL标志的文件,与PUT方法相反。
HEAD: 获取URL标志的信息的首部,与GET方法类似,只是不返回报文主体,一般用于验证URL是否有效。
OPTIONS:查询相应URI支持的HTTP方法。

5 Get 和 Post的区别

  1. 目的
    get从服务器上获取资源。
    post向服务器发送数据。
  2. 参数
    get请求参数在url上,直接暴露,不安全。
    post请求的参数放在请求实体(body)中,比get安全一点。
  3. 数据量
    Get传输的数据量小,因为受URL长度限制,但效率较高。
    Post可以传输大量数据,所以上传文件时只能用Post方式。
  4. 中文乱码
    get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。
    post支持标准字符集,可以正确传递中文字符。
  5. TCP数据包的数量
    参考自:GET和POST两种基本请求方法的区别
    简单的说:
    GET产生一个TCP数据包;POST产生两个TCP数据包。
    长的说:
    对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
    而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
    形象记忆:GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。
    .
    post为什么要发两次数据包?
    在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。

6 HTTP和HTTPS的区别

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

  1. 开头:HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头
  2. 安全:HTTP 不加密,不安全; HTTPS加密,安全。
  3. 端口:HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
  4. 证书:HTTP无需证书,而HTTPS 需要SSL证书。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张之海

若有帮助,客官打赏一分吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值