HTTP----http相关知识点总结

1.常用的HTTP方法有哪些?

  • GET:用于请求网络资源,可传参
  • POST:用于传输信息至服务器
  • PUT:用于传输文件,报文主体包含文件内容,保存到指定URL位置
  • DELETE:用于删除文件,删除指定URL位置的文件
  • OPTIONS:用于查询请求指定URL资源支持的方法

2.HTTP请求报文与响应报文的格式?

请求报文:

  • 请求行
  • 请求首部字段
  • 请求内容实体
  • 空行

响应报文:

  • 状态行
  • 响应首部字段
  • 响应内容实体
  • 空行

3.HTTP常见首部字段?

  • Connection:客户端与服务端连接类型
  • Cache-Control:缓存管理
  • Etag:被请求资源的实体值,响应头中返回给客户端,用于对比资源是否改变
  • If-None-Match:请求头中发送至服务器与Etag对比,判断资源是否改变
  • If-Modified-Since:处于请求头中,用于比较资源的更新时间
  • Last-Modified:响应头中,表示上一次资源更新的时间
  • Host:告知服务器请求资源所处的互联网主机名及端口号(在HTTP/1.1规范内唯一一个必须被包含在请求内的首部字段
  • Accept:告知服务器,客户端可处理的媒体类型及媒体类型的相对优先级
  • Accept-Charset:告知服务器,客户端支持的字符集及字符集的相对优先级
  • Accept-Encoding: 告知服务器,客户端支持的内容编码及内容编码的相对优先级
  • Accept-Language:告知服务器,客户端支持的自然语言集及语言集的相对优先级
  • Accept-Ranges:服务器可接受的字节范围

4.GET与POST的区别?

GET和POST是由HTTP协议定义的,他们的本质上就是TCP链接,并无差别,只是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

按照HTTP标准来说:

在搜索两者区别的时候,有博客说:

Get产生一个TCP数据包;Post产生两个TCP数据包。
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
对于POST,浏览器先发送header,服务器响应100(continue),然后再发送data,服务器响应200(返回数据)。

真相是:到底发多少个tcp包,不是http协议的事情,是操作系统tcp协议栈和框架代码里write调用的事情

5.HTTP状态码?

  • 200:请求被正常处理
  • 301:永久性重定向
  • 302:临时重定向
  • 400:请求报文语法有误,服务器无法识别
  • 401:请求需要认证
  • 403:请求的对应资源禁止被访问
  • 404:服务器无法找到对应资源
  • 500:服务器内部错误
  • 503:服务器正忙

6.cookie与session的区别?

  • session 在服务器端,cookie 在客户端(浏览器)
  • session 默认被存在在服务器的一个文件里(不是内存)
  • session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
  • session 可以放在 文件、数据库、或内存中都可以
  • 用户验证这种场合一般会用 session

7.一次完整的HTTP请求步骤?

  1. 建立TCP连接
  2. 发送请求行
  3. 发送请求头
  4. (到达服务器)发送状态行
  5. 发送响应头
  6. 发送响应数据
  7. 断TCP连接

8.HTTP性能优化方法?

  1. TCP复用:TCP连接复用是将多个客户端的HTTP请求复用到一个服务器端TCP连接上,而HTTP复用则是一个客户端的多个HTTP请求通过一个TCP连接进行处理。前者是负载均衡设备的独特功能;而后者是HTTP 1.1协议所支持的新功能,目前被大多数浏览器所支持。
  2. 内容缓存:将经常用到的内容进行缓存起来,那么客户端就可以直接在内存中获取相应的数据了。
  3. 压缩:将文本数据进行压缩,减少带宽
  4. SSL加速(SSL Acceleration):使用SSL协议对HTTP协议进行加密,在通道内加密并加速
  5. TCP缓冲:通过采用TCP缓冲技术,可以提高服务器端响应时间和处理效率,减少由于通信链路问题给服务器造成的连接负担。

9.http与https的区别?

  • HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头
  • HTTP 无法加密是不安全的,而 HTTPS 对传输的数据进行加密是安全的
  • HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
  • HTTP无需证书,而HTTPS 需要CA机构wosign的颁发的SSL证书

10.HTTPS的工作原理?

  1. 首先HTTP请求服务端生成证书,客户端对证书的有效期、合法性、域名是否与请求的域名一致、证书的公钥(RSA加密)等进行校验;
  2. 客户端如果校验通过后,就根据证书的公钥的有效, 生成随机数,随机数使用公钥进行加密(RSA加密);
  3. 消息体产生的后,对它的摘要进行MD5(或者SHA1)算法加密,此时就得到了RSA签名;
  4. 发送给服务端,此时只有服务端(RSA私钥)能解密。
  5. 解密得到的随机数,再用AES加密,作为密钥(此时的密钥只有客户端和服务端知道)。

11.从输入URL地址到页面展示经历了什么?

  1. 浏览器解析主机名
  2. DNS进行域名解析,即将语义化的主机名转换成IP地址
  3. 浏览器获得端口号
  4. 浏览器根据得到的ip地址和端口号发起TCP连接
  5. 浏览器发起HTTP请求
  6. 浏览器读取服务器返回的响应报文
  7. 浏览器对返回的HTML进行渲染
  8. 浏览器断开TCP连接

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值