servlet(二)

http协议

(1)什么是http协议?

是一种网络应用层协议,规定了浏览器如何与web服务器之间进行通信以及相应的 数据包的结构。

浏览器与web服务器之间如何通信?
step1.建立连接
step2.发送请求
step3.发送响应
step4.关闭连接
如果浏览器要再发送请求,需要重新建立新的连接,即“一次请求,一次连接”。
优点:web服务器可以利用有限的连接为尽可能多的请求服务。


(2)数据包的结构

1)请求数据包

a.请求行 (请求方式 请求资源路径 协议和版本)
b.若干消息头
    消息头是一些键值对(使用": "隔开),浏览器与web服务器之间
    可以通过发送一些消息头来传递一些特定的信息。比如,浏览器
    可以发送"user-agent"消息头来告诉web服务器浏览器的类型和版本。
c.实体内容
    只有当请求方式为post时,实体内容才会有数据。

2)响应数据包

a.状态行 (协议和版本 状态码 状态描述)
    注:
        状态码是一个三位数字,描述服务器处理请求的一种状态
       200: 正解
         500: 系统出错
         404: 依据请求路径找不到对应的资源
         405: 找不到处理方法 
b.若干消息头
    web服务器也可以发送一些消息头给浏览器,比如,可以发送"content-type"消息头,告诉浏览器,服务器返回的数据类型和编码。
c.实体内容
    程序的处理结果,浏览器会解析出来,生成相应的页面。

(3)两种请求方式

1)get请求

a.哪一些情况下浏览器会发送get请求?
    在浏览器地址栏输入某个地址
    点击链接
    表单默认的提交方式

b.特点
    b1.会将请求参数显示在浏览器地址栏,不安全。
    注:
        有一些网络设备,比如路由器,会记录请求地址。
    b2.会将请求参数添加到请求资源路径的后面(即请求行里面),只
    能提交少量的数据。
    注:
        整个请求行,大约能存放2k左右的数据。

2)post请求

a.哪一些情况下,浏览器会发送post请求?
    将表单的method属性设置为post。
b.特点
    b1.不会将请求参数显示在浏览器地址栏,相对安全一些。
    注:
        http协议对数据包并不会加密处理,所以,对于敏感数据
    需要加密(使用https协议)。
    b2.会将请求参数添加到实体内容里面,可以提交大量数据。



原文地址:https://www.cnblogs.com/dxllp/p/10725464.html