zoukankan      html  css  js  c++  java
  • HTTP协议简单理解

    1、概念:

      超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。

      设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。

    2、http协议和tcp协议的区别:  

      1),http对应于应用层

      2),Tcp协议对应于传输层

      3),http协议是在Tcp协议之上建立的,http在发起请求时通过tcp协议建立起连接服务器的通道,请求结束后,立即断开tcp连接

      说明:从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,

      如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接Keep-Alive不会永久保持连接,它有一个保持时间,

      可以在不同的服务器软件(如Apache)中设定这个时间。

      4),Http是无状态的短连接,而TCP是有状态的长连接

    3、http特点:

      简单快速          灵活            无连接         无状态

    4、http报文组成部分:

      

      请求报文:请求行(http方法 页面地址 http协议版本 ) + 请求头(key + value) +空行 + 请求体

      响应报文:  状态行(http协议版本 状态码 状态描述)+ 响应头 + 空行 + 响应体

    5、http方法:

      GET            ----       获取资源

      POST          ----    传输资源

      PUT            ----       更新资源

      DELETE     ----       删除资源

      HEAD         ----       获得报文首部

           GET 和 POST 区别是什么?

      1)、get会把请求的参数放在url后面,例如www.xxx.xx?id=1 。也就是别人通过浏览器就可以看到。post请求会把参数放在request body。相对来说,post的安全性更高。

      2)、长度限制。如果参数有很多,对get的长度也会有限制,不同浏览器的限制不一样。

      3)、get请求的内容,浏览器会主动缓存,而post不会,除非手动设置。

      4)、get仅仅支持url编码格式,post支持多种

      5)、post对参数类型没有限制,get仅支持ASCII字符。

      6)、后退页面时,get没有影响,post会再次提交请求。

    6、http状态码:

      1xx:指示信息-表示请求一接收,继续处理

      2xx:成功-表示请求被成功接收(200请求成功,206客户发送带有Range头的GET请求,服务器完成了它)

      3xx:重定向(301请求页面转移到新url,302请求页面临时转移到新url,304浏览器有缓存,可以继续使用)

      4xx:客户端错误-请求有语法错误或请求无法实现(400语法错误,401请求未经授权,403请求页面被禁止,404请求资源不存在)

      5xx:服务器错误-服务器未能实现合法请求(500服务器错误,503服务器过载或宕机)

    7、http管线化:

      HTTP管线化是将多个HTTP要求(request)整批提交的技术,而在传送过程中不需先等待服务端的回应。管线化机制须通过永久连接(persistent connection)完成,

    仅HTTP/1.1支持此技术(HTTP/1.0不支持),并且只有GET和HEAD要求可以进行管线化,而POST则有所限制。此外,初次创建连接时也不应启动管线机制,

    因为对方(服务器)不一定支持HTTP/1.1版本的协议。

  • 相关阅读:
    完整安装IIS服务
    IIS支持json、geojson文件
    C# ODP.Net oracle数据库操作 支持不安装客户端
    RabbitMQ —— spring标签整合实现(API介绍)
    RabbitMQ —— spring标签整合实现
    RabbitMQ —— spring整合发送异步消息
    RabbitMQ —— spring整合发送同步消息
    RabbitMQ Spring 相关类信息
    RabbitMQ 消息流转示意图
    RabbitDemo —— 延迟队列(在消息上设置TTL)
  • 原文地址:https://www.cnblogs.com/tg666/p/12299573.html
Copyright © 2011-2022 走看看