Servlet学习之HTTP协议入门

声明:本文是本人学习的总结与笔记,文字资料来源于网易云课堂

 

 

 

HTTP:

一句话简介:客户端和服务器的交互机制以及所涉及的规范

HTTP协议详解:

1.协议的产生(作用)

客户端根据用户输入的地址信息请求服务器,服务器在接受到用户请求后进行处理,然后将处理结果响应到客户端,客户端将响应结果展示 

关键字:

     请求:将数据发送给服务器的过程

     响应:将请求的处理结果发送给浏览器的过程

发送请求的 浏览器不同所以导致发送数据的传输格式不同,但是服务器并不关心浏览器的差异,那么不同版本的浏览器和不同版本的服务器进行数据交互时,就必须遵守一套相同的格式,为了解决这个问题,就出现了HTTP协议. 总结 :HTTP的作用就是规范浏览器 和 服务器 数据交互的格式

2.概念

HTTP:超文本传输协议(Hyper Text Transfer Protocol)

特点:

    简单快速,客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有:GET,HEAD,POST.每种方法规定了客户与服务器联系的类型.http发送数据的格式基于键值对 

    灵活,http允许传输任意类型的数据对象,不同类型的数据使用Content-Type属性加以区分

    无连接,限制每次连接只处理一个请求,服务器处理完请求,并接收到客户的应答后,即断开连接.这样做,节省了传输时间.但是同时也浪费了资源,因为大多数情况下,当前请求处理完成后,客户端会立即再发送下一次请求,此时又需要再次建立连接,不过http1.1版本后可以支持可持续连接

    无状态,无状态指协议对事物处理是没有记忆能力的,只规定了数据的传输格式,不关注数据是什么.HTTP是不会为了下一次连接而维护这次连接所传输的信息,这是为了保证服务器内存. 比如客户获得一张网页之后关闭浏览器,然后再一次启动浏览器,再登陆该网站,但是服务器并不知道客户关闭了一次浏览器. 缺少状态意味着如果后续处理需要前面的信息,则它必须重传

 

  建立链接--->客户端发送请求(遵循HTTP协议)--->服务器处理请求并发送响应(遵循HTTP协议)--->关闭链接

  以上整个的步骤 称为HTTP消息

3.HTTP 请求格式

1).请求的结构(键值对格式)

请求头:请求方式(GET,POST等),请求的地址和HTTP协议版本

请求行:说明客户端要使用的附加信息,没有用户的个人信息

空行:位于请求行和请求数据中间,空行是必须的

请求数据

(请求行,请求头的叫法顺序不一,明白背后代表的意义就好)

请求头举例: 

GET https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=http%E8%AF%B7%E6%B1%82%E4%BD%93%E6%9C%89%E5%93%AA%E4%BA%9B&rsv_pq=d99857fe0005b845&rsv_t=cb850GQJ1l2sbaZcfkUNDpxKzu5HaIzKXFFjln2W3KoTlAVcbXS83vJqTMc&rqlang=cn&rsv_enter=1&rsv_sug3=32&rsv_sug1=36&rsv_sug7=101 HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: BAIDUID=62BF3FD39B99E1C1E09A2DCCBD06047B:FG=1; BIDUPSID=62BF3FD39B99E1C1E09A2DCCBD06047B; PSTM=1530629421; BD_UPN=12314353; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; ispeed_lsm=2; H_PS_PSSID=1437_21123_26810; BD_CK_SAM=1; PSINO=1; BD_HOME=0; H_PS_645EC=e271zsj86QRu6v%2BWp4xPjSXg0MeBr03EMXiwVRi%2BkP3G7cnsRW3d7cMEevg

 详细意义,不再一一说明

4.请求方法

HTTP1.0定义了三种请求方法:GET POST HEAD  HTTP1.1又新增OPTIONS PUT DELETE TRACE CONNECT五种方法

这里只介绍最常用的GET 和POST

请求的方法不是浏览器决定的而是在代码中决定的

GET和POST请求方式区别简单介绍:(更多详细会在之后 请求与响应 专栏更新)

get:请求指定的页面信息,请求数据会以?的形式隔开并拼接在请求头中,不安全,而浏览器对UPL的长度有限制,所以get请求不能携带大量的数据

post:向指定资源提交数据进行处理请求.数据被包含在请求体中发送,在UPL中看不到具体的请求数据,安全,而且适合数据量大的数据传输

5.响应格式

1).

响应行(状态行):HTTP版本,状态码,状态消息

响应头:消息报头,客户端使用的附加信息

空行:必须

响应体:服务器返回给浏览器的信息

 

 

 

代码界的小学生,联系QQ:1012200678  WX:CYM9700  期待各位的交流~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值