• http学习笔记


    HTTP  

      HTTP(超文本传输协议)是一个应用层的面向对象的协议,用于从WWW服务器传输超文本到本地浏览器。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。目前使用的主要版本是HTTP/1.0以及HTTP/1.1。

    基本概念

    1.HTTP基于TCP/IP协议,发送请求需要建立TCP连接。

    2.HTTP是基于请求/响应的模式,每次交互,都由客户端发送一个请求到服务器端,服务器端收到请求后会返回一个响应给客户端,所以一次请求+响应的过程才是一个完整的HTTP传输过程。而且服务器端不能主动向客户端发送消息,必须等待客户端发起请求后才能作出回应。

    3.HTTP的请求部分主要分为三个部分:请求行,请求头部,请求主体。具体例子如下:

    POST /sample.jsp HTTP/1.1
    Accept:image/gif.image/jpeg,*
    Accept-Language:zh-cn
    Connection:Keep-Alive
    Host:localhost
    User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
    Accept-Encoding:gzip,deflate
     
    username=jinqiao&password=1234

    第一行即为请求行,主要由请求方法(包括GET,POST,DELETE,PUT,HEAD等),资源所在的URL(URI的一种),协议版本号组成。

    第二行到第七行为请求头部,这部分的信息主要由浏览器负责填入,也可以手动进行设置,主要用来告诉服务器一些浏览器端的情况。比如Accept表示接受的数据类型,Connection表示请求是建立的长连接还是短连接。User-Agent表示用户代理,会发送浏览器以及操作系统的基本信息等。(浏览器的缓存设置就是在请求头部中进行设置,通过cache-control可以和服务器沟通资源的缓存情况)。

    最后一行为请求主体,通常为发送给服务器的数据,通常是在POST请求的时候使用,GET请求会将发送的数据附在URL的末尾作为参数。

    4.HTTP的响应部分主要分为三个部分:响应行,消息报头,响应正文。具体例子如下:

    HTTP/1.1 200 OK
    Server:Apache Tomcat/5.0.12
    Date:Mon,6Oct2003 13:23:42 GMT
    Content-Length:112
    
    username=jinqiao&password=1234

    第一行为响应行,主要包括版本协议号,响应状态码,响应状态消息。

    第二到第四行为消息报头,主要由服务器填入,也可以手动设置,用来反馈服务器的情况(跨域中的CROS方法就是通过在消息头部中设置accept-controll-allow-origin属性)

    最后一行为响应正文,用来返回客户端请求的数据。

    HTTP特点

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

  • 相关阅读:
    VijosP1274:神秘的咒语
    2009年浙大 :找出直系亲属
    django用户信息扩展
    缓存
    自定义认证
    自定义admin
    权限的配置和使用
    form表单
    过滤器 自定义查询
    中间件
  • 原文地址:https://www.cnblogs.com/zhangjunfeng/p/6628403.html
Copyright © 2020-2023  润新知