HTTP协议基本概念:
- 超文本传输协议
- HTTP是基于TCP/IP通信协议来传递数据的应用层的协议
- HTTP的服务器和客户端都相当于一个应用程序:客户端通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的;服务器通过接受客户端的请求并向客户端发送HTTP响应数据。
- HTTP使用同一资源标识符(Uniform Resource Identifiers,URI)来传输数据和建立连接.
- HTTP是无状态协议。无状态是指HTTP协议对于事物处理没有记忆能力。那么如果后续的操作需要前面的信息的话,就需要重传,这样就会导致每次连接传送的数据量增大。令另一方面,如果服务器不惜要先前的信息,那么它的应答就会变快。
HTTP报文: - HTTP请求报文:从客户端向服务器端发送请求报文
- HTTP应答报文:从服务器向客户端发送应答报文
1.因为HTTP协议是面向文本的,因此在报文中的每个字段都是一些ASCll码串,因而各个字段的长度都是不确定的。
2.我们看到,请求报文和应答报文欧式由三部分组成的。而我们可以看出,请求报文和响应报文的区别就是开始行不同。
开始行:用于区别是请求报文还是响应报文:请求报文的开始行叫请求行;而响应报文的开始行叫状态行。开始行的三个字段之间通过空格隔开,“CR”和“LF”分别表示回车和换行。(我们编程时使用/r 和 /n)
首部行:用来说明浏览器、服务器或报文主题的一些信息。首部可以有多行,但也可以不使用。在每一行结束时都会有回车和换行。整个首部结束时还会有回车和换行与后面的数据分开。
请求报文中的常用方法
根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法:GET、POST和HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS、PUT、DELETE、TRACE、CONNECT方法
GET和POST方法的区别:
GET重点在从服务器上获取资源,POST 重点在向服务器发送数据。
GET传输量小,并且URL是可见的,会泄露信息,是不安全的。
POST传输量大,并且安全性较高。
GET方式只支持ASCll字符,向服务器传的中文字符会乱码
POST支持标准字符集,可以传递中文字符。
GET传输数据是通过URL请求,以filed(字段)=value的形式,置于URL后,并用“?”连接,多个请求数据间用&连接,这个过程用户时可见的。
POST传输数据是将字段与对应值封存在请求实体中发送给服务器,这个过程对用户时不可见的。
HTTP响应报文
当浏览器(客户端)访问一个网页时,就是向网页所在的服务器发送请求,服务器收到请求,会返回一个包含HTTP状态码的信息头(serve header)用以相应客户端的请求,而当服务器发送应答报文时,浏览器(即客户端)就能显示网页了。
实例:
HTTP状态码的英文为HTTP Status Code
常见的状态码:
200–请求成功
301–资源(网页等)被永久转移到其他URL
404:请求的资源不存在(即客户端出错)
500:服务器出错
1.信息,服务器收到请求,需要请求者继续执行操作
2.成功,操作被成功接受并处理
3.重定向,需要进一步操作以完成请求
4.客户端错误,请求包含语法错误或无法完成请求
5.服务器错误,服务器在处理请求的过程中发生了错误。
-
什么是HTTP协议
-
什么是HTTP协议无状态协议?怎么解决HTTP协议无状态协议?
无状态协议对于事物没有处理能力,而如果后面需要前面的信息,就需要重传。 -
讲一下HTTP
HTTP协议中,返回的状态码302表示临时重定向。这种情况下,服务器返回的头部信息中会包含一个location字段.302表示就地址的资源还在(仍可以访问),这个重定向只是从就地址跳到新地址,搜索引擎会抓取新的内容而保存旧的网址。 -
HTTP协议的组成
-
HTTP协议有哪些请求方式?
-
HTTP协议中的HTTP1.0和1.1的区别
1.在1.0中,短链接:客户端发送一个请求,服务器返回一个信息后就关闭连接,当浏览器下次请求的时候得重新连接,就会造成一些其他的问题。
2.在1.1中,长连接:引入了持续连接的概念,客户端建立一个连接后,发送请求并得到返回信息,然后继续发送请求再次的轨道返回信息。即客户端可以连续发送多个请求,而不用等待每一个响应的到来。 -
GET和POST的区别
-
HTTP与HTTPS优缺点:
1 通信使用明文不加密,内容可能被窃听,也就是被抓包分析。
2 不验证通信身份,可能遭到伪装。
3 无法验证报文完整性,可能被篡改
4 HTTPS就是HTTP加上加密处理(一般是SSL安全通信线路)+认证+完整性保护