HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是用于从服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档 中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
HTTP 特点:
• 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后, 即断开连接。采用这种方式可以节省传输时间。
• 媒体独立:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过 HTTP 发送。客户端以及服务器指定使用适合的 MIME-type 来传输。 详见:MIME 参考手册
• 无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。例如:你要实现一个购物车,需要借助于Cookie或Session或服务器端API(如NSAPI and ISAPI)记录这些信息,请求服务器结算页面时同时将这些信息提交到服务器;当你登录到一个网站时,你的登录状态也是由Cookie或Session来“记忆”的,因为服务器并不知道你是否登录。优点:服务器不用为每个客户端连接分配内存来记忆大量状态,也不用在客户端失去连接时去清理内存,以更高效地去处理WEB业务。缺点:客户端的每次请求都需要携带相应参数,服务器需要处理这些参数。
容易犯的误区:
1)HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)
2)从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接
3)Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。
HTTP和HTTPS的区别:
现在在浏览很多网站时,通过浏览器地址栏可以看到有的网站是 https 开头(https://www.baidu.com/ ), 但是有的是 http 开头(如:http://www.weather.com.cn )这两种有什么区别呢?
HTTPS 的全称是 Hyper Text Transfer Protocol over Secure Socket Layer,是以安全为目标的 HTTP 通道, 简单讲是 HTTP 的安全版,即 HTTP 下加入 SSL 层(Secure Sockets Layer 安全套接层),简称为 HTTPS,S 其实是 Security 单词的首字母。
HTTPS 的安全基础是 SSL,因此通过它传输的内容都是经过 SSL 加密的,它的主要作用可以分为两种:
1)是建立一个信息安全通道,来保证数据传输的安全。
2) 确认网站的真实性,凡是使用了 https 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询。
HTTP 与 TCP/IP 的区别:
TCP/IP 协议是传输层协议,主要解决数据如何在网络中传输,而 HTTP 是应用层协议,主要解决如何包装数据。
HTTP 请求过程:
浏览器向网站所在的服务器发送了一个 Request,即请求,网站服务器接收到这个 Request 之后进行处理和解析,然后返回对应的一个 Response,即响应,然后传回给浏览器,Response 里面就包含了页面的源代码等内容,浏览器再对其进行解析便将网页呈现了出来。
Request即请求,由客户端向服务端发出,请求报文结构如下图:
可以将 Request 划分为四部分内容:
• Request Method: 请求方式
• Request URL: 请求链接
• Request Headers: 请求头
• Request Body: 请求体
Request Method:
1)http 八大请求方式
1)get:从指定的资源请求数据,即查找资源
2)post:向指定资源提交需要被处理的数据,即修改资源
3)put:上传uri标识的资源到某个主机
4)delete:删除uri指定的资源
5) head:与get方法相同,但是不返回实体的主体,只返回首部
6)trace:回显服务器收到的请求,主要用于测试或诊断。
7)connect:要求在与代理服务器通信时建立隧道,用隧道协议进行tcp通信。主要是使用SSL(Secure Sockets Layer,安全套阶层)和TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。
允许客户端查看服务器的性能
8)options:允许客户端查看服务器的性能。
2)get与post请求的区别
>>>>>>>待续
原文:https://www.cnblogs.com/wuxunyan/p/10488797.html