HTTP学习


一、HTTP协议

1、HTTP 和 Web服务器的使用

在这里插入图片描述

  • 如果没有 Web 服务器的时候就不需要 HTTP协议。我们之前练习的网页只能在自己的电脑打开。有了 Web 服务器的时候,只要有网络和 Web 服务器的电脑都可以访问 Web 资源。
  • ip 地址分为内网地址(酒店号码:3243)和外网地址(手机号:123XXXX)。平时使用的电脑一般是没有外围地址。
  • 电脑局域网地址:电脑属性 IPv4 地址。

2、HTTP 协议

  • HTTP (Hytper Text Transfer Protocol,全称为 “超文本传输协议”) 是一种应用非常广泛的 应用层协议。
  • HTTP 是一种纯文本协议。传输的数据 = 控制信息 + 携带的负荷信息(html、css、js),控制信息是纯文本的,但是它携带的数据信息没有限制。
    在这里插入图片描述
  • HTTP 往往是基于传输层的 TCP 协议实现的。(HTTP1.0, HTTP1.1, HTTP2.0 均为TCP, HTTP3 基于 UDP 实现)。

3、URL

  • Uniform Resource Locator,统一资源定位符。一个完整的 URL 一定描述的是网络上唯一的一个资源。
  • 完整的 URL :协议号(http://)+ web服务器所在(服务器所在主机(ip 地址、域名)+服务器所占端口(可省略))/ 资源路径(/index.* 可省略)+ 查询字符串 + 片段标识符
  • DNS(Domain Name Service)会把域名解析成 ip 。
    在这里插入图片描述
  • 查询字符串(query string):跟在路径后边,以问号开头,然后是key、value形式,以 & 符来分割。主要是在动态资源请求,资源固定,但内容不固定。
  • 片段标识符(segment):用来在同一个资源上定位当前显示效果的。xxx.html#id ,就可以定位到对应 id 的内容。
  • 绝对路径和相对路径:. 当前位置不动;. . 当前位置的父目录。Web 服务器以 webroot 作为根路径。JS 文件中的地当前位置,不是跟着JS文件的位置,而是根据 包含 JS 的 html 的资源来明确当前位置。
  • URL 的编码:由于 URL 中能出现的字符是有限的,所以当出现 URL 中不允许出现的字符时就会被 URL 编码。在百度中搜索 中国,
    在这里插入图片描述

4、请求(Request)

  • 代表从浏览器到服务器。
  • HTTP 请求 = 请求的方法(request method/ method)+ 资源 URL / 路径 + 协议版本(0.9?1.0?1.1?…)+ 请求头(资源的具体描述) + 正文/请求体(具体的资源内容,协议有效负荷信息)。
  • 标准格式:
    在这里插入图片描述
    在这里插入图片描述

请求方法

在这里插入图片描述

GET 和 POST 区别
  • 语义上的区别:get 是获取,post是提交。
  • 由于语义上的区别,所以表现在很多现象上有区别:
    • get 请求不懈怠请求体(正文)的;post 请求允许携带请求体,但是否携带看情况。

    • get请求具有幂等性,post请求不具备幂等性。
      幂等性:假设没有第三方在动服务器资源的前提下,get请求:及时发起多次,得到的结果应该是完全一样的。post请求:第二次请求可能得到和第一次请求不同的结果。

    • get 请求时缓存友好的,post请求不允许缓存。
      缓存:通过开辟一个新的数据交换缓冲区,来解决原始数据获取代价太大的问题,让数据得到更快的访问。get 请求是幂等的,请求得到的结果完全一致,所以缓存那块的资源就是想要的资源。

    • GET参数通过 URL 提交(query string),POST 的参数既可以在 query string 中,也可以在请求体(form表单)中。

    • GET 能提交的参数有长度限制,这假设了URL的长度有限制,但在标准中没有规定长度限制,不同浏览器或者Web服务器确实有长度限制。

    • POST只是相对GET安全一点点,POST参数放在请求体中,但是通过抓包工具/开发者工具都可以看到,使用HTTPS才安全。

5、应答/响应(Response)

  • 从服务器到浏览器。
  • 响应信息:
    • 协议版本
    • 本次请求结果
    • 本次响应的元信息:响应头
    • 响应的资源内容: 响应体/正文
      在这里插入图片描述

在这里插入图片描述

状态码和状态描述

在这里插入图片描述

  • 200 OK 成功
  • 404 Not Found 请求的资源是不存在的
  • 500 Internal Server Error 动态资源,由于 java 代码报异常,所以 tomcat报500错误

响应头

  • content-***:用来描述正文的元信息。content-length:正文的字节数。content-type:正文的内容类型,浏览器会根据此来解析浏览器的资源。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值