HTTP协议
HTTP全称Hypertext Transfer Protocol,就是超文本传输协议,是基于tcp连接的应用层协议。也就是说,是用tcp进行连接,来进行通信的。
·HTTP运行机制
实现一次http通信需要客户端和服务器的合作,相当于客户/服务器模式。
交互过程如下:

了解过socket编程的人应该都明白,利用socket套接字来建立一个tcp连接,然后可以互相发送数据进行通信。
然后关于这个请求报文和响应报文,首先为什么要有这个请求报文,当一个客户端连接到服务器的时候,服务器不知道这个客户端要干嘛,所以客户端要发送一个要干嘛的请求给服务器,好让服务器知道客户端要进行什么活动,要获取什么资源,当服务器知道客户端要干嘛后,就会发送响应报文,回复客户端要请求的东西。
一次通信结束后就可以关闭tcp连接了。
·HTTP报文
HTTP报文采用RFC 822定义的通用报文格式,如下图:

请求报文和响应报文均满足上述的格式,只不过它们的内容不是一样的。
先来说说请求报文的格式。

下面来详细说这个格式:
方法:get,post,put等等,目前主要是get方法和post方法
URL:就是请求的网址啦
版本:目前一般都是HTTP/1.1这个版本
回车换行代表在网络传输中一行的结束
在请求报文中的起始行也叫请求行
在响应报文中的起始行就叫状态行
下面看一个真正的报文结构:

是不是和上面的结构一一对应
有点区别的是这个报文主体为空,所以就没有
然后来看看响应报文:

同样满足报文的格式,只不过起始行的内容有些变化
版本:同请求报文的版本一样HTTP/1.1
状态码:这个就有很多了,一般有200,404等这些熟悉的状态码
短语:用来简单解释状态码用的,比如200就是ok,404就是Not found等等
那么首部字段名都有哪些呢,这里简单说下:
请求首部字段:
Accept:客户端能够接受的媒体格式
Accept-charset:客户端能够处理的字符集
Accept-encoding:客户端能够处理的编码方案
Accept-language:客户端能够接受的语言
Host:客户端的主机和端口号
关于通用首部字段 ,响应首部字段 ,实体首部字段等字段建议在下面网址中查询https://tools.ietf.org/html/rfc2616