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.会将请求参数添加到实体内容里面,可以提交大量数据。


servlet(二)的更多相关文章

  1. JavaWeb学习 (六)————Servlet(二)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  2. web开发之Servlet 二

    在上一篇文章中,我们演示也证明了Servlet 是一种动态web资源开发的技术,即我可以在浏览器中输入URL,然后就可以在浏览器中看到我们编写的Servlet资源. 那当我们在浏览器上一起一个HTTP ...

  3. Tomcat深入浅出——Servlet(二)

    一.Servlet简介 Servlet类最终开发步骤: 第一步:编写一个Servlet类,直接继承HttpServlet 第二步:重写doGet方法或者doPost方法,重写哪个我说的算! 第三步:将 ...

  4. servlet二

    ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始 ...

  5. Java Servlet(二):servlet配置及生命周期相关(jdk7+tomcat7+eclipse)

    该篇文章记录了Servlet配置相关用法及Servlet在Servlet容器中生命周期方法. Tomcat是一个Servlet容器: 1.Servlet容器管理了Servlet的整个生命周期,并调用s ...

  6. HTML调用servlet(二)

    5.修改数据 5.1编写查询条件页面 修改单条数据的时候,首先是查询出单个数据的详细信息,然后根据实际需要部分修改或者全部修改.修改之后,数据会提交到数据库,数据库中保存更新以后的数据. 查询出单条数 ...

  7. 动手学servlet(二) servlet基础

    1.我们来试着向一个servlet提交一个表单,现在webcontent下新建一个login.html页面,其中action对应servelt类名,代码如下: <!DOCTYPE HTML PU ...

  8. 浅谈Servlet(二)

    1.forward(请求的转发)和redirect(重定向) 目的:都是为了把一个Servlet的功能,拆分到多个Servlet中,便于后续代码的维护. a.forward(请求转发) (1).如何在 ...

  9. Servlet(二)GenericServlet

    以GenericServlet创建Servlet 1.在FirstServlet同文件夹下建立GServlet.java package com.hunhun; import javax.servle ...

  10. 重新学习Servlet二

    重新学习Servlet public abstract class HttpServlet extends GenericServlet package com.xh.test.api; import ...

随机推荐

  1. Oracle 基本语法、触发器、视图

    参考文章:https://www.cnblogs.com/linjiqin/category/349944.html 数据库分类 1.小型数据库:access.foxbase 2.中型数据库:inor ...

  2. 十六、Mediator 仲载者设计模式

    原理: 代码清单: Mediator public interface Mediator { void createColleagues(); void colleagueChanged(); } C ...

  3. JS中的事件(对象,冒泡,委托,绑定)

    - 事件,是文档或浏览器窗口中发生的一些特定的交互瞬间,JS与HTML之间的交互是通过事件实现的 对于web应用来说,有下面这些代表性事件:点击事件,鼠标移动,按下键盘等等 - 事件,是用户和浏览器之 ...

  4. 算法练习LeetCode初级算法之排序和搜索

    合并两个有序数组 class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { System.arrayco ...

  5. React Redux 记数器

    npm init react-app counter cd counter npm install 将 src/index.js改为 import React from 'react'; import ...

  6. oracle 中的sql 语句

    1.update 表名 set 表字段=(select 另一个表中的相同字段 from 另一个表表名 where 表.字段=另一个表.字段) where  表.字段=? 例子:将某个表中的更新到另一个 ...

  7. Centos7下安装Docker[z]

    [z]https://www.cnblogs.com/qgc1995/p/9553572.html https://yq.aliyun.com/articles/691610?spm=a2c4e.11 ...

  8. PHP开发——常量

    概念 l  常量就是值永远不变的量.如:圆周率.身份证号码等. l  所谓常量值永远不变的量,是指在一次完整的HTTP请求过程中. l  常量在程序运行过程中,不能修改.也不能删除. l  常量比变量 ...

  9. [杂谈]杂谈章3 JAVA中如何用自动注入

    PART1 加配置文件 创建自动加载bean的配置文件 <beans xmlns="http://www.springframework.org/schema/beans" ...

  10. .net 资源释放(托管资源和非托管资源)

    1.托管资源 像int.float.DateTime等都是托管资源:net中80%的资源都是托管资源: 托管资源的回收通过GC(垃圾回收器)自动释放分配给该对象的内存,但无法预测进行垃圾回收的时间,我 ...