zoukankan      html  css  js  c++  java
  • HTTP基础02--HTTP协议简介

    客户端和服务器端:

    • 仅从一条通信路线来说,服务器端和客户端是确定的;
    • HTTP协议规定,通信一定是先从客户端开始建立,服务器端在没有接受到请求之前不会发送响应;

    不保存状态:

    • HTTP是无状态协议,对发送过的请求和响应都不做持久化处理,即不会根据之前的请求和响应的状态进行本次请求处理;
    • 这是为了更快地处理大量事务;
    • 使用cookie技术可以进行弥补;

    请求/响应报文:

    • 请求报文     //请求方法、请求URL、协议版本、可选请求首部字、内容实体
    GET    /index.html    HTTP/1.1
    Host: hackr.jp
    
    ------------------------------------
    POST  /form/enrty   HTTP/1.1
    
    Host: hackr.jp
    Connection: keep-alive
    Connection-Type: application/x-www-form-urlencoded
    Content-Length: 16
    
    name=ueno&age=37
    
    • 响应报文   //协议版本、状态码、解释状态码的原因短语、可选的响应首部字段、响应主体
    HTTP/1.1    200   OK 
    
    Date: Tie, 10 Jul 2012 06:50:15 GMT
    Content-Length: 362
    Content-Type: text/html
    
    <html>
    ......................
    • 请求方法:HTTP/1.1
      • GET:用来请求访问已被URI识别的资源;指定的资源经服务器端解析后返回响应内容;即:
        • 请求文本,直接返回;
        • 请求CGI(通过网关接口)那样的程序,则返回执行后输出的结果;
      • POST:用来传输实体的主体;
      • HEAD:和GET方法一样,只是不返回报文主体部分,用于确认URI的有效性及资源更新的日期时间;
      • OPTIONS:用来查询针对请求URI指定资源支持的方法;
      • PUT:传输文件,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置;由于HTTP/1.1的PUT方法自身不带验证机制,因此一般不采用;
      • DELETE:删除文件,与PUT方法相反;但也不不带验证机制,一般不采用;
      • TRACE:让web服务器端将之前的请求通信返回给客户端;可以用来查询发送出去的请求是怎样被加工修改的;但不常用且易引发XST(跨站追击);
      • CONNECT:要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信;

    持久连接:早期的HTTP协议中每进行一次通信就断开TCP连接;目前的HTTP协议已经实现了持久化连接;只要任意一端没有明确提出断开连接,则保持TCP连接状态;

    管线化:从前发送请求后需等待并收到响应才能发送下一个请求;持久化连接实现之后,可以实现管线化技术,即同时并行发送多个请求;

    Cookie的状态管理://Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态;

    • 客户端:cookie会根据从服务器端发送的响应报文内觉得Set-Cookie的首部字段信息通知客户端保存Cookie;当下次客户端往服务器端发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去;
    • 服务器端:发现客户端发送过来的Cookie之后,会去检查究竟是从哪一个客户端发出的连接请求,然后对比服务器上的记录,最后得到之前的状态信息;
  • 相关阅读:
    css文本及文本装饰
    css尺寸常用样式
    了解css的两大特性
    css长度单位及字体
    css颜色
    css选择器详解
    了解css
    html行级元素与块级元素以及meta标签的使用
    了解html表单
    html图片和html实体
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/4125293.html
Copyright © 2011-2022 走看看