zoukankan      html  css  js  c++  java
  • HTTP协议入门

    HTTP协议介绍

      HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。基于TCP的应用层协议,它不关心数据传输的细节,HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,只有遵循统一的 HTTP 请求格式,服务器才能正确解析不同客户端发的请求,同样地,服务器遵循统一的响应格式,客户端才得以正确解析不同网站发过来的响应。

        

      HTTP支持无连接无状态

        无连接:代表的是一次连接只能处理一次请求;

        无状态:不会记录事务,代表不保存状态,HTTP协议自身不对客户端和服务器的状态进行保存,也就是说请求和响应不做持久化处理;

      HTTP的特点:

        1、支持客户/服务器模式;

        2、简单快速;

        3、灵活;

        4、无连接;

        5、无状态;

    HTTP协议内容

      完整的协议包含请求和响应两块

      HTTP请求

        请求行

          请求行主要包含:请求方法,请求地址,请求版本

          请求方法包含:

            GET        请求资源,将数据在地址栏中显示

            POST        提交资源,封装数据在请求体中,常用于表单提交

            Head        获取响应头,跟GET类似,服务器响应的结果只包含响应头

            PUT         替换资源

            DELETE      删除资源

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

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

          请求地址:

            Uniforn Resource Locator:统一资源定位符(用于描述网上的资源)

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

              scheme:协议,比如http,https,ftp

              host:域名或者IP地址

              port:端口

              path:资源路径

              query-string:发送的参数

            如:https://www.baidu.com/s?wd=xxx

          HTTP协议版本

            http1.0:当浏览器客户端与服务端建立连接之后,只能发送一次请求,一次请求之后连接关闭;

            http1.1:当浏览器客户端与服务端建立连接之后,可以在一次连接中发送多次请求

        请求头

          

           Host:主机IP地址或者域名

          User-Agent:客户端相关信息

          Accept:指定客户端接收信息类型

          Accept-charset:客户端接收的字符集

          Accept-Encoding:可接受的内容编码

          Accept-Language:接收的语言

          Authorization:客户端提供给服务端,进行权限认证的信息

          Cookie:携带的cookie信息

          Referer:当前文档的URL,即从哪个连接过来的

          Content-Type:请求体内容类型

          Content-Length:数据长度

          Cache-Control:缓存机制

          Pragma:防止页面被缓存

        请求正文

          一般携带的请求参数

      HTTP响应

        主要包含:响应行,响应头,响应体

        响应行

          HTTP 版本号 + 响应状态码 + 状态说明

          响应状态码:

            1xx:提示信息,请求成功接收;

            2xx:成功,请求被成功处理;

            3xx:重定向相关;

            4xx:客户端错误;

            5xx:服务端错误;

        响应头

          Server:HTTP服务器的软件信息;

          Date:响应报文的时间;

          Expires:指定缓存过期时间;

          Set-cookie:cookie;

          Last-Modified:资源最后修改时间;

          Content-Type:响应的类型和字符集;

          Content-Length:内容长度;

          Connection:表示保持TCP连接不关闭,不会永久保持连接,如Keep-Alive;

          Location:指明重定向的位置,新的URL地址,如304的情况;

        响应体

          响应的数据,网页上HTML的源码

     

  • 相关阅读:
    linux项目部署学习(1) pyhton3的虚拟环境virtualenv和virtualenvwrapper详解
    linux下pip查看安装包的路径、和指定安装目录
    python+selenium实现长截图
    selenium设置chrome浏览器保持登录方式两种options和cookie
    linux中离线安装django
    理解 bashrc 和 profile
    Django部署阿里云服务时候报错:SQLite 3.8.3 or later is required (found 3.7.17)
    Django的django-admin工具详解
    Yum Install --Downloadonly 离线下载依赖包研究
    分治法求n个点中的最近距离
  • 原文地址:https://www.cnblogs.com/wnwn/p/12259252.html
Copyright © 2011-2022 走看看