HTTP简介

1.HTTP的产生:为什么会有HTTP这个东西?

浏览器的版本是有很多的,服务器的版本也是有很多的,如何实现不同版本的浏览器和不同版本的服务器之间的数据交互呢?即使是发送相同的数据,但是不同浏览器底层代码的不同也会导致数据传输的差异性。
解决:规范浏览器和服务器的数据交互的格式。
实现:HTTP 协议
2.HTTP的概念
超文本传输协议(Hyper Text Transfer Protocol)

作用:规范浏览器和服务器交互的格式
3.HTTP特点:
0.简单快速
1.无连接(客户端一次请求并且服务器给出相应响应之后断开连接)
HTTP1.1之后支持可持续连接
2.无状态
不保存之前处理事务的状态(与数字电路的触发器相反)
好处:如果之后的响应不需要之前的状态那么响应速度快
坏处:需要之前的状态,处理速度慢(重新传送之前的数据)
3.支持C/S和B/S

4.HTTP交互流程:
1.建立连接(服务器课客户端)
2.客户端发送请求
3.服务器接收请求并处理,将处理结果发送到客户端
4.关闭连接(http1.1以及以后不会立刻断开连接)

5.HTTP请求格式

 HTTP请求是指 : 客户端通过发送 HTTP 请求向服务器请求对资源的访问。 它向服务器传递了一个数据块,也就是请求信息,HTTP 请求由四部分组成:请求行、空行、请求头和请求正文

请求行:请求方法 URI 协议/版本

请求头(Request Header)

请求正文

下面是一个HTTP请求的数据:

POST /index.html HTTP/1.1   请求方法 url 协议/版本号
Host: localhost  主机地址
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: <a target=_blank href="http://localhost/" style="color: rgb(51, 102, 153); text-decoration: none;">http://localhost/</a>
Content-Length:25
Content-Type:application/x-www-form-urlencoded
请求空行 标志着请求头结束,请求正文(请求体)的开始
username=aa&password=1234

HTTP1.1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方法。
GET请求方式:
请求数据会以?的形式隔开拼接在请求头中,不安全,没有请求实体部分。
例如:在百度搜索Java

如果输入账号和密码用这种请求方式hi很不安全。并且因为显示框的大小有限,所以一般GET请求不能携带大量的数据

POST请求方式:

请求数据在请求实体中进行发送,在URL中看不到具体的请求数据,安全。适合数据量大的数据发送
 
6.HTTP响应格式:
在接收和解释请求消息后,服务器会返回一个 HTTP 响应消息。与 HTTP 请求类似,HTTP 响应也是由四个部分组成,分别是:状态行、空行、消息报头和响应正文。
响应行(状态行):HTTP版本、状态码、状态消息
响应头:消息报头,客户端使用的附加信息
空行:响应头和响应实体之间的,必须的。 响应实体:正文,服务器返回给浏览器的信息
响应实体:正文,服务器返回给浏览器的信息
 
如下是一个响应实例:

HTTP常见响应状态码含义:

7.Web交互基本概念:

客户端根据用户输入的地址信息请求服务器,服务器在接收到用户的请求后进行处理,然后将处理结果响应给客户端,客户端将响应结果展示给用户。
请求:客户端根据用户地址信息将数据发送给服务器的过程
响应:服务器将请求的处理结果发送给浏览器的过程
不一样的烟火
原文地址:https://www.cnblogs.com/cstdio1/p/11643060.html