• 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

  • 相关阅读:
    [JS]格式化Date和分析格式化Date字符串的JS代码
    发布一个实用美观的Vista Sidebar Gadget (代表博客园参赛)
    2月8号N706从深圳回湖南,有没有同行的,呵呵
    LiveWriter测试
    自动内容滚动条[WinForm控件]
    关于Ajax的一揽子工程(1)
    “做事先做人”实战
    成熟度即流程
    金秋游故宫
    html块状元素、内联元素
  • 原文地址:https://www.cnblogs.com/HathawayLee/p/13204035.html
Copyright © 2020-2023  润新知