zoukankan      html  css  js  c++  java
  • HTTP协议概述

    Http协议:

    名为超文本传输协议,基于TCP/IP通信协议来传递数据的应用层中的协议(HTML 文件, 图片文件, 查询结果等)的。访问的是远程的网络资源,格式是http://,http协议是在网络开发中最常用的协议

    Http通信过程:

    .请求:1个完整的由客户端发给服务器的HTTP请求中包含以下内容

    请求行:包含请求方法,请求资源路径,Http协议版本
    	GET/MOVIES/123.MP4 HTTP/1.1
    请求头:包含了对客户端的环境描述,客户端请求的主机地址等信息
    	Accept:用于告诉服务器,客户机支持的数据类型  (例如:Accept:text/html,image/*)
        Accept-Charset:用于告诉服务器,客户机采用的编码格式
        Accept-Encoding:用于告诉服务器,客户机支持的数据压缩格式
        Accept-Language:客户机语言环境
        Host:客户机通过这个服务器,想访问的主机名
        If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间
        Referer:客户机通过这个头告诉服务器,它(客户端)是从哪个资源来访问服务器的(防盗链)
        User-Agent:客户机通过这个头告诉服务器,客户机的软件环境(操作系统,浏览器版本等)
        Cookie:客户机通过这个头,将Coockie信息带给服务器
        Connection:告诉服务器,请求完成后,是否保持连接
        Date:告诉服务器,当前请求的时间
     请求体:
     	就是指浏览器端通过http协议发送给服务器的实体数据。例如:name=dylan&id=110
    	(get请求时,通过url传给服务器的值。post请求时,通过表单发送给服务器的值)
    
    
    

    .响应:客户端向服务器发送请求,服务器应当做出响应,即返回数据给客户端,1个完整的HTTP响应中包含以下内容:

    状态行:包含了http协议版本,状态码,状态英文名称
    	HTTP/1.1 200 OK
    响应头:包含了对服务器的描述,对返回数据的描述
    	Server: Apache-Coyote/1.1 // 服务器的类型
        Content-Type: image/jpeg // 返回数据的类型
        Content-Length: 56811 // 返回数据的长度	
        Date: Mon, 23 Jun 2014 12:54:52 GMT // 响应的时间
        Connection:响应完成后,是否断开连接。  close/Keep-Alive
    	Date:告诉浏览器,服务器响应时间
    实体内容:应包含浏览器能够解析的静态内容,例如:html,纯文本,图片等等信息
    

    总结:浏览器先向服务器发送请求,服务器接收到请求后,做相应的处理,然后封装好响应报文,再回送给浏览器。浏览器拿到响应报文后,再通过 浏览器引擎去渲染网页,解析DOM树,javascript引擎解析并执行脚本操作。web的本质,无非是:请求/处理/响应

    Http特点:

    1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
    2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
    3.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
    4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
    

    HTTP请求方法

    GET: 向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中 。
    HEAD: 向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。
    POST: 向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。
    PUT: 向指定资源位置上传其最新内容。
    DELETE: 请求服务器删除Request-URI所标识的资源。
    TRACE: 回显服务器收到的请求,主要用于测试或诊断。 [tres]
    OPTIONS: 这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用'*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。
    CONNECT: HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。
    

    Http响应状态码:

    状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:
    1xx:指示信息--表示请求已接收,继续处理
    2xx:成功--表示请求已被成功接收、理解、接受
    3xx:重定向--要完成请求必须进行更进一步的操作
    4xx:客户端错误--请求有语法错误或请求无法实现
    5xx:服务器端错误--服务器未能实现合法的请求
    
    常见状态码&含义
            200 - 请求成功,已经正常处理完毕
            301 - 请求永久重定向,转移到其它URL
            302 - 请求临时重定向
            304 - 请求被重定向到客户端本地缓存
            400 - 客户端请求存在语法错误
            401 - 客户端请求没有经过授权
            403 - 客户端的请求被服务器拒绝,一般为客户端没有访问权限
            404 - 客户端请求的URL在服务端不存在
            500 - 服务端永久错误
    
    

    Http协议详细内容(https://www.cnblogs.com/an-wen/p/11180076.html)

  • 相关阅读:
    js设计模式-工厂模式
    js设计模式-构造函数模式
    js设计模式-单例模式
    为什么要用事件委托and 为什么移动端click事件要设计延迟
    css属性支持
    翻译express
    无法点击,无法获取inputvalue值得原因
    cookie删除不掉的问题
    56.com面试
    angular.js phonecat翻译
  • 原文地址:https://www.cnblogs.com/cou1d/p/12893637.html
Copyright © 2011-2022 走看看