• HTTP协议


    HTTP协议

    HTTP 协议说明文档

    HTTP协议如何工作

    HTTP协议定义了Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端

    1. 客户端连接到Web服务器
      一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。
    2. 发送HTTP请求
      通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
    3. 服务器接受请求并返回HTTP响应
      Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行(请求空行)和响应数据(请求体)4部分组成。
    4. 释放TCP连接
      • 若connection模式为close,则服务器会主动关闭TCP连接,客户端被动关闭连接,释放TCP连接。
      • 若connection模式为keepalive,则该连接会保持一段时间,在该事件内可以继续接受请求。

    HTTP协议结构

    • 示意图:

    请求方法

    GET和POST是最常见的HTTP方法,除此以外还有DELETE、HEAD、OPTION、PUT、TRACE。不过,目前的大多数浏览器只支持GET和POST

    GET vs POST

    • GET请求的参数是直接拼在地址栏URL的后面,而POST请求的参数是放在请求体里面的。
    • GET请求有具体的长度限制,一般不超过1024KB,而POST理论上没有,但浏览器一般有个界限。
    • GET请求相较于POST因为数据都是明文显示在URL上面的,所以安全和私密性不如POST。
    • 从本质上来说GET和POST都是TCP连接,并无实质的区别。但是由于HTTP/浏览器的限定,导致它们在应用过程中出现了一些不同。GET产生一个数据包,POST产生两个。GET将http head和data一起发出去,服务器响应200。POST则先发送header,服务器响应100 continue,浏览器在发送data,服务器响应200 ok。
  • 相关阅读:
    sql FLOAT字段使用like查询
    关于sql--时间范围查询重叠
    关于java时间类型比较
    前端-搜索无结果时,怎么把“暂无数据“显示出来?
    v-for动态赋值给不同的下拉框input
    Java的优先队列PriorityQueue详解
    软件体系架构阅读笔记八
    字符数组和字符串之间的转换
    Java快速输入输出
    软件体系架构阅读笔记七
  • 原文地址:https://www.cnblogs.com/lxy2019/p/13569818.html
Copyright © 2020-2023  润新知