文章目录
前言
最近在学习http开发,本文的目的是对http开发基础资料的一个汇总,方便以后复习,分享出来,希望对同样想学习http的同学有所帮助。本文一共三个部分,第一个部分是http协议的最基本知识、第二部分是http开发客户端使用的开源库源码使用方式、第三部分是测试工具postman的使用分享。本人也是零基础开始学习http的,分享的知识都是比较基础的,一步一个脚印,打好基础,方便日后深入学习。一、http基础知识
1、http是什么
超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。2、http工作原理
HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程:(1)客户与服务器建立连接;
(2)客户向服务器提出请求;
(3)服务器接受请求,并根据请求返回相应的文件作为应答;
(4)客户与服务器关闭连接。
客户与服务器之间的HTTP连接是一种一次性连接,它限制每次连接只处理一个请求,当服务器返回本次请求的应答后便立即关闭连接,下次请求再重新建立连接。这种一次性连接主要考虑到WWW服务器面向的是Internet中成干上万个用户,且只能提供有限个连接,故服务器不会让一个连接处于等待状态,及时地释放连接可以大大提高服务器的执行效率。
HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。HTTP是一种面向对象的协议。允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。当用户在一个HTML文档中定义了一个超文本链后,浏览器将通过TCP/IP协议与指定的服务器建立连接。
3、http请求消息格式
客户端发送一个HTTP请求到服务器的请求消息包括以下格式: 请求行、请求头部、空行和请求数据四个部分组成。 请求方法:最常用的是GET/POST/PUT/DELETE,执行资源的增删改查。4、http响应消息格式
HTTP响应也由四个部分组成,分别是:状态行、响应头、空行和响应体。二、curl库
1、curl概念
cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。cURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP
2、curl源码及C语言调用
仓库位置:https://hub.fastgit.org/curl/curl克隆:https://hub.fastgit.org/curl/curl.git
libcurl C语言调用:https://blog.csdn.net/ypbsyy/article/details/83617993
三、postman
postman主要用来测试,我们可以使用它来做客户端,测试服务器API,也可以把他当成服务器,测试自己开发的客户端。Postman的简介与使用:https://blog.csdn.net/guo_qingxia/article/details/103730169