zoukankan      html  css  js  c++  java
  • HTTP 简述

    HTTP 简介:

      1、Hyper Text Transfer Protocol(超文本传输协议),主要用于 Web 浏览器和 Web 服务器之间的通信

      2、它基于 TCP/IP 通信协议来传输数据

      3、主要特点:

        ① 简单快速:客户端向服务器请求服务时,只需传送请求方法和路径

        ② 灵活:允许传输任意类型的数据对象,由 Content-Type 标记类型

        ③ 无连接:限制每次连接只处理一个请求

        ④ 无状态:服务器不会在两个请求之间保留任何数据

        ⑤ 支持 B/S(Browser/Server) 和 C/S (Client/Server) 模式

    URL:

      1、格式:protocol :// hostname[:port] / path / [;parameters][?query]#fragment

    参数 说明
    protocol 指定使用的协议(如http、https等)
    hostname

    存放资源的服务器的域名系统(DNS) 主机名或 IP 地址。

    在主机名前也可以包含连接到服务器所需的用户名和密码

    (格式:username:password@hostname)

    port 端口号,默认为80
    path 路径,由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址
    parameters 用于指定特殊参数的可选项
    query

    用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP。NET等技术制作的网页)传递参数,

    可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开

    fragment 锚记,用于指定网络资源中的片断 

      2、URI、URL 和 URN:

        ① URI(uniform resource identifier):统一资源标识符,它是一种抽象的资源标识,可以是相对,也可以是绝对的

        ② URL(uniform resource location):统一资源定位符,一个具体的 URI,指明如何定位这个资源,必须是绝对的

        ③ URN(uniform resource name):统一资源命名,通过名字来标识资源

    HTTP 请求方法:

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

      2、POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。

                         POST 请求可能会导致新的资源的建立和/或已有资源的修改

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

      4、DELETE:请求服务器删除指定的页面

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

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

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

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

      9、PATCH:是对 PUT 方法的补充,用来对已知资源进行局部更新

      POST 和 GET 的区别:

        1、大小不同:GET 方式的数据以明文的形式放在 URL 的首部中,大小会受到 URL 大小的限制,

                                而 POST 则把数据放到报文里,大小由报文大小来确定

        2、安全性不同:我们可以通过 URL 来查看 GET 的内容,而 POST 则不行,因此,敏感信息不应使用 GET 来传输

        3、使用目标不同:两者都用于获取资源,但 GET 仅仅是查询,POST 则常用于发送一定内容进行某些修改操作

    HTTP 请求/响应步骤:

      1、客户端连接到 Web 服务器:建立一个 TCP 连接

      2、发送 HTTP 请求:通过 TCP,客户端向 Web 服务器发送一个文本的请求报文

      3、服务器接受请求并返回 HTTP 响应:Web 服务器解析请求,定位请求的资源

      4、释放 TCP 连接:

        ① 若 connection 模式为 close ==》服务器主动关闭 TCP 连接

        ② 若 connection 模式为 keepalive ==》连接保持一段时间,在该时间内可以继续接收请求

      5、客户端浏览器解析 HTML 内容:

        ① 客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码

        ② 然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。

        ③ 客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示

    注:一个请求报文由请求行、请求头部、空行和请求数据 4 部分组成

      一个响应报文由状态行、响应头部、空行和响应数据 4 部分组成

    状态码:

      

    状态码 含义
    1** 服务器收到请求,需要请求者继续执行操作
    2** 成功,操作成功地被接收并处理
    3** 重新定向,需要进一步的操作以完成请求
    4** 客户端错误,请求包含语法错误或无法完成请求
    5** 服务器错误,服务器在处理请求的过程中发生了错误

      常见状态码:

        200:请求成功

        301:资源被永久转移到求它 URL

        404:请求资源不存在

        500:内部服务器错误

  • 相关阅读:
    grub
    init
    内核的ramdisk
    kernel信息及其相关命令
    mvc和mvvm模式
    vue从零开始(一)
    echarts自动播放图形
    echarts自定义悬浮框的显示
    typescript入门
    echarts的最外层配置项
  • 原文地址:https://www.cnblogs.com/lemonyam/p/11489501.html
Copyright © 2011-2022 走看看