http学习笔记(一)

HTTP

概念:Hyper Text Transfer Protocol 超文本传输协议

  • 概述: HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议。通过使用网页浏览器、网络爬虫或者其它的工具,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如”HTTP/1.1 200 OK”,以及返回的内容,如请求的文件、错误消息、或者其它信息。
  • 传输协议:定义了,客户端和服务器端通信时,发送数据的格式
  • 特点:

    1. 基于TCP/IP的高级协议
    2. 默认端口号:80
    3. 基于请求/响应模型的:一次请求对应一次响应
    4. 无状态的:每次请求之间相互独立,不能交互数据
  • 历史版本:

    • 1.0:每一次请求响应都会建立新的连接(多用于代理服务器)
    • 1.1:默认采用持久连接,同时支持以管道方式同时发送多个请求
    • 2.0:
      • 压缩 Header(HPACK算法)
      • 单一长连接
      • 多路复用
      • 缓存推送

请求消息数据格式

  1. 请求行
    请求方式 请求url 请求协议/版本
    GET /login.html HTTP/1.1

    • 请求方式:
      • HTTP协议有7中请求方式,常用的有2种
        • GET:
          1. 请求参数在请求行中,在url后。
          2. 请求的url长度有限制的
          3. 不太安全
        • POST:
          1. 请求参数在请求体中
          2. 请求的url长度没有限制的
          3. 相对安全
  2. 请求头:客户端浏览器告诉服务器一些信息
    请求头名称: 请求头值

    • 常见的请求头:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      #浏览器接受的数据类型
      Accept: text/html,image/*
      #浏览器接受的编码格式
      Accept-Charset: ISO-8859-1
      #浏览器接受的数据压缩格式
      Accept-Encoding: gzip,compress
      #浏览器接受的语言
      Accept-Language: en-us,zh-      
      #(必须的)当前请求访问的目标地址(主机:端口)
      Host: www.bestsort.cn:80         
      #浏览器最后的缓存时间
      If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT
      # 当前请求来自于哪里 
      Referer: http://www.bestsort.cn/index.html      
      #浏览器类型
      User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
      (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36
      # 浏览器保存的cookie信息
      Cookie:name=eric                    
      # 浏览器跟服务器连接状态。close: 连接关闭  keep-alive:保存连接。
      Connection: close/Keep-Alive           
      # 请求发出的时间
      Date: Tue, 11 Jul 2000 18:23:51 GMT
  3. 请求空行
    空行,就是用于分割POST请求的请求头,和请求体的。

  4. 请求体(正文):
    • 封装POST请求消息的请求参数的

      状态码

  • 1xx:消息——请求已被服务器接收,继续处理
  • 2xx:成功——请求已成功被服务器接收、理解、并接受
  • 3xx:重定向——需要后续操作才能完成这一请求
  • 4xx:请求错误——请求含有词法错误或者无法被执行
  • 5xx:服务器错误——服务器在处理某个正确请求时发生错误
  • 字符串格式:

    POST /login.html HTTP/1.1
    Host: localhost
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,-/-;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Referer: http://localhost/login.html
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1

    username=zhangsan

  • 响应消息数据格式

觉得文章不错的话可以请我喝一杯茶哟~
  • 本文作者: bestsort
  • 本文链接: https://bestsort.cn/2019/08/19/819/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-SA 许可协议。转载请注明出处!并保留本声明。感谢您的阅读和支持!
-------------本文结束感谢您的阅读-------------