理解HTTP协议原理--http学习笔记整理

关于http协议在之前的计算机网络课程中就已经接触过了,后续也有再学习理解相关的知识,但是最近发现自己对http的理解还是很碎片化的,没有整理成一个体系,所以现在想整体回顾一下。

http协议是什么

HTTP协议全称为HyperText Transfer Protocol,即超文本传输协议,它是应用层的一个很重要的协议,也是目前应用最广泛的一种网络协议,所有的WWW文件都必须遵守这个标准进行数据的网络传输。
HTTP从本质上来说就是用于规定客户端和浏览器之间传输规则的协议。http协议传输示意图

http协议的特点

  1. 基于TCP/IP协议
    HTTP协议目的是规定客户端和服务端数据传输的格式和数据交互行为,并不负责数据传输的细节。底层是基于TCP实现的。
    服务器在80端口等待客户的请求,
    浏览器发起到服务器的TCP连接,
    服务器接接受来自浏览器的TCP连接,
    浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP信息,
    关闭TCP连接。
    (关于TCP/IP的知识也会在后面的文章进行总结)
  2. 无状态
    HTTP是一个无状态的协议,服务器不维护任何有关客户端过去所发送请求的信息,也就是说它没有记忆。
    HTTP采用无状态的协议也是一个妥协,因为有状态的协议要更复杂,一是要维护状态(历史信息);二是如果客户或服务器失效,则会产生状态的不一致,解决这种不一致的代价比较高。
  3. 多次请求
    在客户端请求网页时多数情况下并不是一次请求就能成功的,服务端首先是响应HTML页面,然后浏览器收到响应之后发现HTML页面还引用了其他的资源,例如,CSS,JS文件,图片等等,还会自动发送HTTP请求这些需要的资源。现在的HTTP版本支持管道机制,可以同时请求和响应多个请求,大大提高了效率。

http连接的过程

http连接的两种类型

非持久性连接

每个TCP连接最多允许传输一个对象
HTTP1.0 版本使用非持久性连接

持久性连接

每个TCP连接允许传输多个对象
HTTP1.1版本默认使用持续性连接

http消息格式

请求报文

请求方法

(内容来自MDN)
GET
GET方法请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据.
HEAD
HEAD方法请求一个与GET请求的响应相同的响应,但没有响应体.
POST
POST方法用于将实体提交到指定的资源,通常导致状态或服务器上的副作用的更改.
PUT
PUT方法用请求有效载荷替换目标资源的所有当前表示。
DELETE
DELETE方法删除指定的资源。

响应报文

响应状态码

常见http响应状态码
200 OK
204 空内容
301 永久重定向
307 临时重定向
400 语法或参数错误
403 服务器拒绝请求
404 NOT FOUND
500 服务器内部错误
502 无效网关

http缓存

参考资料:
《图解HTTP》
阮一峰 HTTP协议入门
简书-编程小翁 http in iOS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值