• 浅谈超文本传输协议(HTTP)


    客户端和服务器端交互的过程

    1. 客户发起连接
    2. 客户发送请求
    3. 服务器响应请求
    4. 服务器关闭连接

    概述

     通常,有http客户端发起一个请求,创建一个到服务器的端口指定的端口(默认80端口)的TCP连接。http服务器则在那个端口监听客户端的请求。一旦收到请求,服务器向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。

    请求信息->发出的请求信息包括以下几个

    • 请求行
      • 例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件。
    • (请求)头,
      • 例如Accept-Language: en
    • 空行
    • 其他消息体

    请求行和标题必须以<CR><LF>作为结尾。空行内必须只有<CR><LF>而无其他空格。在HTTP/1.1协议中,所有的请求头,除Host外,都是可选的。 

    GET /hello.htm HTTP/1.1
    User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)   #一个标识客户端的字符串(应用程序名称,版本,包含的信息,如主机操作系统和语言)
    Host: example.com
    Accept-Language: en-us
    Accept-Encoding: gzip, deflate

     请求方法

    请求方法用来定义操作资源的方式,HTTP/1.1 协议中定义了八种请求方法:

      • GET:读取资源数据
      • POST:新建资源数据
      • PUT:更新资源数据
      • DELETE:删除资源数据
      • HEAD:读取资源的元数据
      • OPTIONS:读取该资源所支持的所有请求方法
      • TRACE:回显服务器收到的请求,主要用于测试或诊断
      • CONNECT:HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经
        由非加密的HTTP代理服务器)

    请求头字段:用来传递客户端的更多信息,以及传递解析信息主题的必要信息

    User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)   
    Host: example.com
    Accept-Language: en-us  #可接受的语言
    Accept-Encoding: gzip, deflate  #支持的编码类型

    #
    • Accept: 客户端接受哪些 Mine 类型。如 Accept: text/html
    • Referer: 从那个页面到的该页面。

     响应头字段:和请求消息类似,首部字段会包括服务器本身的一些信息指示、以及响应消息本身的元数据

    Date: Mon, 27 Jul 2009 12:28:53 GMT
    Server: Apache/2.2.14 (Win32)
    Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
    Content-Length: 88
    Content-Type: text/html
    Connection: Closed

    常见响应头有:

    • Content-Encoding: 数据的编码类型。如 Content-Encoding: gzip
    • Server: 服务器的名称。如 Server:thin 1.5.0 codename Knife
    • Location: 通知客户端新的资源位置。如 Location: http://www.github.com/login
    • Content-Type: 响应数据的类型。如 Content-Type:text/html; charset=UTF-8

    Content-Encoding: 响应数据的编码格式。如 gzip。客户端会根据该值对响应内容解码。



  • 相关阅读:
    webpack基本使用
    vue-路由-显示名称
    vue-父组件和路由
    vue-路由
    vue-父子组件和ref
    vue-组件
    go-面向对象编程(上)
    JavaScript的历史
    vue-列表动画
    钩子函数实现小球弹落
  • 原文地址:https://www.cnblogs.com/Jdrops/p/5355606.html
Copyright © 2020-2023  润新知