• http协议


    http协议

    http协议即超文本传输协议,是基于请求与响应的、无状态应用层面向对象的协议,基于TCP的连接方式

    http协议的特点:

      支持C/S模式(客户/服务器模式)[B/S是基于特定通信协议的—http协议的C/S架构]

    1.   简单快速:客户向服务器请求服务时,只需要传送方法和路径。请求常用的方法有GET,HEAD,POST。由于http协议简单,使得http服务器的程序规模小,因而通信速度快。

    2.   灵活:http协议允许传输任意类型的数据对象

    3.   无连接:无连接的含义限制每次连接只处理一个请求,服务器处理完客户的请求,并且受到客户的应答后,断开连接。这种方式节约传输时间。

    4.   无状态:无状态是指协议对事物处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则必须重传,这样可能导致每次连接传输的数据量增大,但是另一方面,服务器不需要先前的信息也使得他的应答较快。

    URL

      http协议中的URL(同一资源定位符)就是请求的网址。

    http协议请求

      http请求由三部分组成,分别是:请求行,消息报头,请求正文

      请求行格式为:请求符号(请求方法)+ 请求的URI + 协议版本,以空格隔开。

      例: Method Request-URI HTTP-Version CRLF 
      其中 Method表示请求方法;Request-URI是一个统一资源标识符(URL是一种特殊类型的URI);HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。

      请求方法:

    •   GET 请求获取Request-URI所标识的资源。——在浏览器地址栏输入网址访问网页时,浏览器采用的是GET的方法向服务器获取资源。

    •   POST  在Request-URI所标识的资源后附加数据。——要求被请求的服务器接收附在请求后面的数据,常用于提交表单。

    •   HEAD 请求获取Request-URI所标识的资源的响应报头。

    •   PUT 请求服务器存储一个资源,并用Request-URI作为其标识。

    •   DELETE 请求服务器删除Request-URI所标识的资源

    •   TRACE 请求服务器回送收到的请求信息。——主要用于测试或诊断。

    •   CONNECT 保留将来用。

    •   OPTION 请求查询服务器性能,或者查询与资源相关的选项和需求。

    http协议响应

      在接收和解释请求消息后,服务器返回一个http响应消息。

      http响应分为三部分,分别是:状态行,消息报头,响应正文

      状态行的格式为:协议版本 + 服务器响应状态码 + 状态码文本描述,以空格隔开。

      状态码由三位数字组成,第一个数字表示响应类别,有五种可能取值。以下为状态码

    •   1xx:指示信息——请求已接收,继续处理。

    •   2xx:成功——请求已成功接收、理解、接受。

    •   3xx: 重定向——要求完成请求必须进行更新一步的操作。

    •   4xx:客户端错误——请求由语法错误或请求无法实现。

    •   5xx:服务端错误——服务未能实现合法请求。

      常见状态码说明:

    •   200 OK——客户端请求成功。

    •   400 Bad Request——客户端请求有语法错误,无法被服务器解析。

    •   402 Unauthorized——请求未经授权。

    •   403 Forbidden——服务器收到请求,但是拒绝提供服务。

    •   404 Not Found——请求资源不存在(输入了错误的URL)

    •   500 Internal Server Error——服务器发生不可预期的错误。

    •   503 Server Unavailable——服务器当前不能处理客户请求,一段时间后可能恢复。目前http协议的版本号是1.10.2可以通过F12来查看网页的信息。

    补充:

    有关Cookie的知识:

      http协议虽然是无连接的,但是万维网希望识别用户,就需要用到cookie来追踪用户。

      Cookie表示HTTP服务器和客户之间传递的状态信息

      1.Cookie的工作原理:

        假设用户A浏览某格网站是,该网站的服务器就为A产生一个唯一识别码,并以此为索引在服务器后端的数据库建立一个项目,然后在A的http的响应报文中添加Set-cookie的首部行,首部行后面的值就是A的识别码。假设A的识别码为1234,那么浏览器就添加Set-cookie:1234及服务器的主机名。当A再次浏览这个网页时,浏览器就将他的识别码取出,放在http请求报文中。这样网站就可以跟踪用户的行为了。

        需要主要的是,服务器并不知道A的姓名及其他信息,但是服务器知道1234访问了那些页面,访问时间及访问顺序。

      2.Cookie用法举例:

        在购物时,将你的购物车一起结算。

        下次购物时根据你一起的访问记录,向你推荐商品。

      3.Cookie的争议:

        有人认为Cookie会带入病毒。

        这是对Cookie的误解,Cookie只是一个文本文件,并不是可执行程序,因此不会带入病毒,也不会获取用户硬盘中的信息。

        涉及到隐私问题,cookie知道A的一些信息,并且可以利用cookie开分析A在互联网的行为。但是有些网站公开会保护用户的信息,并且用户也有拒绝接受cookie的自由。

  • 相关阅读:
    T4 (Text Template Transformation Toolkit)
    GUI Design Studio
    51劳有所获 54务实青年
    [书目20110502]把时间当作朋友
    Rdlc子报表的动态添加
    [转]更新Android SDK到3.0版本时,遇到Failed to rename directory E:\android\tools to E:\android\temp\ToolPackage.old01问题
    JSON
    javascript 特征侦测技术
    IE的setAttribute bug
    将"类数组对象"转换成数组对象
  • 原文地址:https://www.cnblogs.com/zhuzhu2016/p/5802461.html
Copyright © 2020-2023  润新知