HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World
Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。


  HTTP是一个简单的请求-响应协议,它通常运行在TCP之上,是一个无状态的协议。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。


  在Internet中所有的传输都是通过TCP/IP进行的。HTTP协议作为TCP/IP模型中应用层的协议也不例外。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示:



HTTP默认的端口号为80,HTTPS的端口号为443。


浏览网页是HTTP的主要应用,但是这并不代表HTTP就只能应用于网页的浏览。HTTP是一种协议,只要通信的双方都遵守这个协议,HTTP就能有发挥其强大的功能。比如办公常用的微信、QQ、迅雷、百度网盘、大型游戏、云服务器等都会使用到HTTP协议或者其他协议。

 

  微软 .NET 平台针对 HTTP 的操作做了大量的封装,让开发者使用起来更加的简单。在 System.Net 命名空间下提供了
HttpWebRequest 与 HttpWebResponse
类。.NET开发者使用这2个类即可实现客户端与服务器的数据、Office文档、图片、音频、视频等文件的上传与下载等功能。

本系列文章详细介绍了 HttpWebRequest 与 HttpWebResponse 类以及其重要的属性、方法,最后提供了封装好的通用方法。

 C# HTTP系列1 HttpWebRequest 类
<https://www.cnblogs.com/SavionZhang/p/11392709.html>

 C# HTTP系列2 HttpWebReponse 类
<https://www.cnblogs.com/SavionZhang/p/11393547.html>

 C# HTTP系列3 HttpWebRequest.ContentType 属性
<https://www.cnblogs.com/SavionZhang/p/11394249.html>

 C# HTTP系列4 HttpWebRequest.CookieContainer 属性
<https://www.cnblogs.com/SavionZhang/p/11394405.html>

 C# HTTP系列5 HttpWebResponse.StatusCode 属性
<https://www.cnblogs.com/SavionZhang/p/11394494.html>

 C# HTTP系列6 HttpWebResponse.StatusCode 响应代码中文详解
<https://www.cnblogs.com/SavionZhang/p/11394524.html>

 C# HTTP系列7 HttpWebRequest.Method 属性
<https://www.cnblogs.com/SavionZhang/p/11394734.html>

 C# HTTP系列8 GET与POST 对比说明 <https://www.cnblogs.com/SavionZhang/p/11396403.html>

 C# HTTP系列9 GET与POST 示例 <https://www.cnblogs.com/SavionZhang/p/11413218.html>

 C# HTTP系列10 form表单的 enctype 属性
<https://www.cnblogs.com/SavionZhang/p/11413314.html>

 C# HTTP系列11 以普通文件流方式上传文件远程服务器
<https://www.cnblogs.com/SavionZhang/p/11419532.html>

 C# HTTP系列12 以form-data方式上传键值对集合到远程服务器
<https://www.cnblogs.com/SavionZhang/p/11419559.html>

 C# HTTP系列13 以form-data方式上传多个文件以及键值对集合到远程服务器
<https://www.cnblogs.com/SavionZhang/p/11419778.html>