一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第23天,点击查看活动详情。
1.什么是http协议?
HTTP是超文本传输协议的英文缩写,是基于TCP/IP通讯协议之上用来传输HTML和图片文件的应用协议,原本是用来从万维网服务器传输超文本到本地浏览器。
它是一个应用层面向对象的协议,优点是简捷、快速,适用于分布式超媒体信息系统。于1990年提出,经过多年的完善和扩展已经非常地成熟。
HTTP协议主要工作于B-S架构之上,这个时候浏览器作为HTTP的客户端通过URL向HTTP的服务器(web服务器)发送所有请求,web服务器根据接收到的请求后,向客户端发送响应信息。客户端向服务器请求发送时,需要传送请求方法和路径。
路径就是URL,而HTTP常用的请求方法为GET和POST方法,每种方法规定了客户端与服务器通讯方式和数据报文
2. HTTP协议报文
客户端与服务器的通讯都是通过一个个请求来实现的
一个HTTP请求的消息包括:请求行、请求头部、空行、请求数据四个部分组成的。
服务器收到请求后,需要响应
响应的消息也由四个部分组成:状态行、消息报头、空行、响应正文。
3.请求头
GET或POST:请求类型,后接请求资源、协议和版本
Host:主机和端口
Connection:是否使用持续连接
User-Agent:客户端浏览器的名称
Accept:浏览器可接受的MIME类型
Accept-Encoding:浏览器知道如何解码的数据编码类型
Accept-Language:浏览器指定的语言
Accept-Charset:浏览器支持的字符编码
Cookie:保存的Cookie对象
4.响应头
Allow:服务器支持哪些请求方法(如GET、POST等)
Content-Encoding:文档的编码(Encode)类型。只有在解码之后才可以得到Content-Type头指定的内容类型
Content-Length:内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据
Content-Type:表示后面的文档属于什么MIME类型
Date:当前的时间
Expires:文档过期时间
Refresh:表示浏览器应该在多少时间之后刷新文档,以秒计
Server:服务器名称
Set-Cookie:设置与页面关联的Cookie
5.http协议的特点
1、简单快速:通信速度快,由于客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST这些数据,因而HTTP服务器的程序规模小,通信速度就较快。
2、使用灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
3.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。5、支持B/S及C/S模式。
6.get和post的区别
GET提交的数据会放在URL之后,以‘?’分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456.POST方法是把提交的数据放在HTTP包的Body中\
GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制\
GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码