HTTP 协议相关

一. HTTP常见请求头

  1. Host (主机和端口号)

   2. Connection (连接类型)

   3.Upgrade-Insecure-Requests (升级为HTTPS请求)

   4. User-Agent (浏览器名称) 

   5. Accept (传输文件类型)

   6.Referer (页面跳转处)

    7. Accept-Encoding (文件编码格式)

    8. Cookie

    9. x-requested-with: XMLHttpRequest (是Ajax异步请求)

二. HTTP请求方法

      HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法

      HTTP 1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和CONNECT方法

       GET  请求指定的页面信息,并返回实体主体

       HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

       POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源建立和/或已有资源的修改

       PUT 从客户端向服务器传送的数据取代指定的文档内容

       DELETE 请求服务器删除指定页面

      CONNECT  HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

      OPTIONS 允许客户端查看服务器的性能

      TRACE 回显服务器收到的请求,主要用于测试或诊断 

三. URL的形式

      形式: scheme: //host[:port#]/path/.../[?query-string][#anchor]

          scheme : 协议(例如:http, https, ftp)   

          host: 服务器的IP地址或域名

          port: 服务器的端口(如果是走协议默认端口,80或443)

          path:访问资源的路径

          query-string: 参数,发送给http服务器的数据

          anchor: 锚(跳转到网页的指定锚点位置)

        http://localhost:4000/file/part01/1.2.html

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

      1. 首先,在浏览器地址栏中输入一串url, 先解析url, 检测url地址是否合法

       2.浏览器先查看浏览器缓存--系统缓存--路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有到第三步

       3. 在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址

       4.浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手

       5. 握手成功后,浏览器向服务器发送http请求,请求数据包

       6. 服务器处理收到的请求,将数据返回至浏览器

       7.浏览器收到HTTP响应

       8.浏览器解码响应,如果响应可以缓存,则存入缓存

       9.浏览器发送请求获取嵌入在HTML中的资源(html, css, javascript, 图片,音乐...), 对于未知类型,会弹出对话框

       10.浏览器发送异步请求

        11.页面全部渲染结束

五.  get 喝 post请求的区别

       GET和 POST最主要的区别: GET产生一个TCP数据包,POST产生两个

        对于GET方式请求,浏览器会把http header 和data一并发送出去,服务器响应200(返回数据)

        对于POST,浏览器先发送header,服务器响应100 continue, 浏览器再发送data, 服务器响应200 ok(返回数据)

六. HTTP和HTTPS的区别

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

      HTTPS和HTTP的主要区别:

            1.https协议需要到CA申请证书,一般免费证书较少,需要一定费用

            2.http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

            3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443

            4. http的连接很简单,是无状态的;https协议是由SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议,比http协议安全

七. 什么是Http协议无状态协议?怎么解决Http状态无状态协议

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

         无状态协议解决办法: 1. 通过Cookie (客户端保存状态)  2. 通过Session会话保存 (服务器端保存状态)

八 . Http请求报文和响应报文格式

     请求报文: a. 请求行 (包括请求方法、URI、HTTP版本信息)

                         b、请求头部(headers)字段

                         c、请求内容实体(body)

   响应报文: a、状态行 (包括HTTP版本、状态码、状态码的原因短语)

                      b、响应头部(headers)字段

                      c、响应内容实体(body)

九. 常见的POST提交数据方式

       application/x-www-form-urlencoded

       multipart/form-data

       application/json

       text/xml

原文地址:https://www.cnblogs.com/HathawayLee/p/13204035.html