HTTP 协议

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。

HTTP是万维网的数据通信的基础。

设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。

如何系统的学习 HTTP 协议?

学习HTTP协议需要掌握以下几个方面:

  1. HTTP基础概念:了解HTTP协议的起源、发展历程、版本等基本概念。

  2. HTTP请求与响应:掌握HTTP请求和响应的结构、格式、内容,以及常见的请求和响应头信息。

  3. HTTP状态码:理解HTTP状态码的含义和分类,了解常见状态码的含义和使用场景。

  4. HTTP方法:掌握HTTP定义的各种请求方法,如GET、POST、PUT、DELETE等。

  5. HTTPS安全协议:了解HTTPS的基本概念、作用、工作原理、证书以及HTTPS相对于HTTP的优势。

下面是一些推荐的学习资源:

  1. HTTP权威指南:这是一本详细介绍HTTP协议的书籍,涵盖了HTTP的各个方面,是学习HTTP协议的权威指南。

  2. MDN文档:MDN是Mozilla开发者网络的缩写,提供了HTTP协议的详细文档和实例,适合初学者和进阶者。

  3. 视频教程:网上有很多HTTP协议的视频教程,如慕课网、哔哩哔哩等,可以帮助你更直观地学习HTTP协议。

  4. 开发者工具:使用开发者工具可以直接查看HTTP请求和响应的内容,帮助你更好地理解HTTP协议。

总的来说,学习HTTP协议需要理论结合实践,建议多做实验、实战来加深理解。

拓展阅读

HTTPS

HTTP/2

HTTP/3

基础知识

HTTP GET POST 请求区别

相关框架

HTTP 请求框架

OkHTTP

MVC

spring mvc

经典资料

《HTTP 权威指南》已阅读,感觉更像是手册。

《图解 HTTP》

rfc2616

自己的想法

实现 mvc

结合 servlet+http 协议,实现一套完整的 web 框架。

实现请求

类似于 okhttp, 原理就是 netty+http。

个人感受

  1. 协议是一种约定,这个世界的很多东西就是建立在约定上的。

  2. 很多框架的底层,就是一种灵活的技术(netty/java 注解)+协议。

  3. 掌握一门协议最好的方式就是实现它,最好超过同期的所有其他框架。

参考资料

Apache Commons Math-Overview