zoukankan      html  css  js  c++  java
  • http协议中的一些小常识

    http协议这部分的知识很重要,在面试的时候也会经常问起来。


    先来看一看什么是http协议:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。


    关于http的版本,也经常在面试的时候会提及,当前用的是HTTP 1.1,是的,你没有看错,是1.1,经常提及的也总共只有0.9,1.0,1.1这3个版本;HTTP/1.0,这是第一个在通讯中指定版本号的HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。HTTP/1.1是当前版本。持久连接被默认采用,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。HTTP/1.1相较于 HTTP/1.0 协议的区别主要体现在:1,缓存处理;2,带宽优化及网络连接的使用;3,错误通知的管理;4,消息在网络中的发送;5,互联网地址的维护;6,安全性及完整性。


    其实啊,HTTP就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。其实我们要学习的就是这个两个格式!客户端发送给服务器的格式叫“请求协议”;服务器发送给客户端的格式叫“响应协议”。


    http请求协议:

    一个http请求由基本由请求首行+请求头+请求体组成,

    请求方式有很多种:

    GET 请求获取Request-URI所标识的资源
    POST 在Request-URI所标识的资源后附加新的数据
    HEAD 请求获取由Request-URI所标识的资源的响应消息报头
    PUT 请求服务器存储一个资源,并用Request-URI作为其标识
    DELETE 请求服务器删除Request-URI所标识的资源
    TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
    CONNECT 保留将来使用
    OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求


    但我们常用的是get和post,下面就比较一下这2种,

    get和post
      get post
    后退按钮/刷新 没啥影响 数据会被重新提交(浏览器应该告知用户数据会被重新提交,就是弹出的框)
    书签 可收藏为书签 不可收藏为书签
    编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
    历史 参数保留在浏览器历史中 参数不会保存在浏览器历史中
    对数据长度的限制 当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。注意,这个限制是特定的浏览器及服务器对它的限制 无限制,数据在body中啊。
    对数据类型的限制 只允许 ASCII 字符 没有限制。也允许二进制数据。
    安全性 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。
    在发送密码或其他敏感信息时绝不要使用 GET !
    POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。
    可见性
    数据在 URL 中对所有人都是可见的 数据不会显示在 URL 中,在body中啊。
    缓存 能被缓存 不能缓存

    一般我们就使用这2种,大家可以看看这篇帖子:为什么http用的时候不能用POST方式替代全部的GET方式?


    http响应协议:

    响应由响应首行+响应头+响应体组成,

    响应协议中有个非常重要的东西是响应码,响应码有多种,下面来看看,

    响应码
    数字 意义
    1xx 信息响应类,表示接收到请求并且继续处理微笑
    2xx 处理成功响应类,表示动作被成功接收、理解和接受偷笑
    3xx 重定向响应类,为了完成指定的动作,必须接受进一步处理吐舌头
    4xx 客户端错误,客户请求包含语法错误或者是不能正确执行敲打
    5xx 服务端错误,服务器不能正确执行一个正确的请求惊恐

    一般来说,我们能从响应码中看出这次请求是否成功,或者是发生了什么~

    另外,可以在HTML中指定响应头,在HTMl页面中可以使用<meta http-equiv="" content="">来指定响应头,

    例如在页面中给出<meta http-equiv="Refresh" content="3;url=http://www.baidu.cn">,表示浏览器只会显示此页面3秒,然后自动跳转到百度。


    好了,这些就是我在平时学习的时候所了解到的一些关于http的知识,都是一些比较基础的东西,做个总结,有需要的看看就好哈~

    http


  • 相关阅读:
    Ubuntu 14.04 LTS 系统空间不足,输入密码后,无法进入桌面的解决办法
    语言代码表
    在WPS中删除整行的快捷键是什么?
    Google浏览器&插件
    Linux命令大全
    Python下载安装
    Tiobe最新编程语言排行
    windows 清理利器
    如何用VBA实现格式刷的功能?
    武侠音乐精装
  • 原文地址:https://www.cnblogs.com/Arry10/p/7731806.html
Copyright © 2011-2022 走看看