zoukankan      html  css  js  c++  java
  • http协议

    什么是协议

    是指关于计算机通信的一整套规则,是为完成计算机网络通信而制订的规则、约定和标准。
    http协议是众多通信协议中的一种,超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则 , 通过因特网传送万维网文档的数据
    传送协议,简单的说就是访问网站用到的协议。Internet中所有的传输都是通过TCP/IP进行的,HTTP协议作为TCP/IP模型中应用层的协议也是如此,HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,此时就是常说的HTTPS,如下所示:HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP同样也是一个无状态的协议。HTTP默认的端口是80,HTTPS端口是443。

    特点:

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

    工作流程

      比如说我们在浏览器地址栏输入www.cnblogs.com然后回车,就会显示博客园首页(前提是你要联网),在此过程,客户端到服务端发生了什么?浏览器和服务器是怎么通信的?服务器是如何处理的?处理后如何将信息反馈给浏览器然后展现给用户的?。。。这些流程主要可以归纳为四点:
      1. 客户端与服务端需要建立连接。只要单击某个超级链接,HTTP的工作开始。
      2. 浏览器首先向服务器发送HTTP请求,请求格式如下:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
      3. 服务器向浏览器返回HTTP响应,响应包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
      4. 客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
    

    请求和相应的格式

      1. 请求的格式:
         请求行(请求方法 路径 协议)
         头信息(格式为 key:value)
    
         主体信息(可选)(发送内容)
      
    
      2. 响应的格式:
         响应行(协议 状态码 状态文字)
         响应头信息(格式为 key:value)
    
         主体信息(可能没有)
    

    在window下 通过cmd命令测试,首先进入telnet界面,win+r输入cmd回车输入telnet localhost 80 如果提示没有telnet这个命令,需要在控制面板->程序->打开或关闭Windows功能->勾选Telnet客户端->确定再重新打开,如图所示

    请求方法

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

    get和post是最常用的方法,简单来说,前者用于获取数据,后者用于提交数据。

    响应状态码

    1. 1xx(信息类):表示接收到请求并且继续处理
    2. 2xx(响应成功):表示动作被成功接收、理解和接受
    3. 3xx(重定向类):为了完成指定的动作,必须接受进一步处理
    4. 4xx(客户端错误类):请求包含错误语法或不能正确执行
    5. 5xx(服务端错误类):服务器不能正确执行一个正确的请求
    

    常见状态码
    状态码 说明
    200 服务器成功返回网页
    301/2 永久 / 临时重定向
    304 Not Modified– 未修改
    307 重定向中保持原有的请求数据
    404 请求的网页不存在
    500 服务器内部错误
    503 服务器暂时不可用

    应用

    1. 断点续传
    2. 多线程下载
    3. http代理
    4. 虚拟主机
    5. 认证、采集数据、模拟发帖等等
  • 相关阅读:
    css 冷知识
    js跨域问题
    检测浏览器是否支持ES6
    新增项目到GIT仓库中
    如何正确设置统计博客园的个人博客访问量(图文详解)
    Node中包的加载机制
    图片路径中含有中文在jsp下不能正常显示的问题
    通过Xshell来访问和连接Linux
    文件下载该注意的问题
    文件上传该注意的问题
  • 原文地址:https://www.cnblogs.com/weblm/p/5811834.html
Copyright © 2011-2022 走看看