java之http协议
HTTP协议
自从入坑以来,只要是跟web打交道,总是免不了这个HTTP协议,这是什么鬼,让我们一探究竟。(不周之处还请赐教!!!)
既然是协议,我们首先要问三个问题,谁跟谁的协议?协议是什么?怎么用?
第一个问题:
谁跟谁的协议?
所谓协议,至少需要两方,甲方and乙方,我们先说下甲方and乙方到底是谁,粗俗的理解,甲方就是我们用的浏览器客户端,乙方就是服务器--(可以先这样理解---存储你想要的页面的地方),http协议就是他们俩要遵守的协议。
第二个问题:
协议是什么?
还是要俗,比如说你去超市买东西,你跟售货员说来一瓶罐装可口可乐,注意这里面有三个元素(你,可口可乐,售货员),你跟售货员之间就遵循了一份协议。而可口可乐就是这份协议当中的一份内容,你说要罐装的可口可乐,售货员就给你拿一罐罐装的可口可乐,你说要红茶,售货员肯定给你拿红茶而不是其他的东西,这就是是http协议,它定义了你的请求格式,也定义了服务器的返回格式。你的请求格式:(一瓶,罐装,可口可乐可乐),如果售货员有的话-格式(有,一瓶,罐装,可口可乐),如果没有的话--格式(没有)。
官方语言:
HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。
第三个问题:
怎么用?
http协议就是浏览器客户端跟服务器之间的协议,你想要访问一个页面,而页面存储在服务器,你得向服务器要,而怎么要就是你(也就是甲方)要遵循的协议,举个例子说明

第一个红色框框:GET是你请求资源的方式,/JavaWebDemoProject/Web/1.jsp----- 你要请求的页面,HTTP/1.1----http协议的版本,
第二个红色框框:accept:浏览器通过这个头告诉服务器,它所支持的数据类型
Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
Host:浏览器通过这个头告诉服务器,想访问哪台主机
If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
既然我们已经发出请求了,剩下的就是服务器的回应了。

第一个红色框框:http/1.1还是http协议的版本号,200是状态码--指的是对你的请求做出的回应 OK返回状态的原因,常见的状态码贴上:

第二个红色框框:告诉你的浏览器返回内容的类型啊,格式啊,字符编码啊,大小啊还有服务器的的一些基本信息啊这些东西吧,不做过多的解释了。
第三个红色框框:当然就是你想要页面的内容了,然后你的浏览器接收这些内容,然后以页面的形式展现给你!
好了,http协议本人理解的就这么多了,希望对大家有帮助。
java之http协议的更多相关文章
- Java实现SOAP协议 之 HelloWorld
Java实现SOAP协议 之 HelloWorld SOAP是把基于HTTP的WEB技术与XML的灵活性和可扩展性组合在了一起. 准备: 1. 准备一个web server.Tomcat 下载地址 h ...
- 《转》Java与Http协议
引言 http(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式.HTTP协议的主要特点是: 1.支持客户/服务器模式. 2.简单快速:客户向 ...
- Java远程方法协议(JRMP)
Java远程方法协议(英语:Java Remote Method Protocol,JRMP)是特定于Java技术的.用于查找和引用远程对象的协议.这是运行在Java远程方法调用(RMI)之下.TCP ...
- Java Web ——http协议请求报文
package com.demo.util; import java.io.IOException; import java.io.InputStream; import java.net.*; /* ...
- JAVA的UDP协议交互信息
由于要做app的UDP协议交互,所以就特地学习了下,其实也就类似于java的server和socket,下面就写了个简单的demo 服务端: package com.test1; import jav ...
- Java 实现 SSH 协议的客户端登录认证方式--转载
背景 在开篇之前,让我们先对 SSH 协议有个宏观的大致了解,这样更有利于我们对本文的加深了解.首先要提到的就是计算机网络协议,所谓计算机网络协议,简单的说就是定义了一套标准和规则,使得不同计算机之间 ...
- java EE : http 协议之请求报文、响应报文
1 HTTP协议特点 1)客户端->服务端(请求request)有三部份 a)请求行 b)请求头 c)请求的内容,如果没有,就是空白字符 2)服务端->客户端(响应response)有三部 ...
- JAVA 基于TCP协议的一对一,一对多文件传输实现
最近老师给我们上了多线程和TCP和UDP协议,其中一个要求就是我们用JAVA协议一个基于TCP和UDP这两种协议的一对一文件上传和一对多文件上传. 然后我就开始分析TCP和UDP这两个协议的特点,发现 ...
- 理解java底层通讯协议
引言: 本周自己重新对底层通讯方式进行了学习,在此做一个输出. 分别从客户端发送多个请求的需求角度与服务端接收多个连接发送请求的需求角度,剖析4种基于java自身技术实现的消息方式通讯所带来的影响,解 ...
- Java Web ——http协议响应报文
HTTP 响应报文 HTTP 响应报文由状态行.响应头部.空行 和 响应包体 4 个部分组成,如下图所示: 下面对响应报文格式进行简单的分析: 状态行:状态行由 HTTP 协议版本字段.状态码和状态码 ...
随机推荐
- JavaWeb 后端 <十三> 之 监听器 JSTL国际化
1. 监听器 1.1 概述 监听器: 主要是用来监听特定对象的创建或销毁.属性的变化的! 是一个实现特定接口的普通java类! 对象: 自己创建自己用 (不用监听) 别人创建自己用 (需要监听) ...
- 只有第三方控件pas代码生成控件
如果他人的VCl控件只有pas代码,如何生成控件? 步骤:1.new Pakage(bpl ) 2.在Contains中Add VCl***.pas 3.再Complie ,Install 即可 XE ...
- java基础05 集合
一.集合的由来? 我们学习Java,可以操作很多对象 ,存储 的容器有数组和StringBuffer,StringBuilder; 而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们 ...
- 使用java语言编写窗口按钮
使用java语言编写窗口按钮 代码如下: package Day08; import java.awt.FlowLayout; import javax.swing.JButton;import ja ...
- Ubuntu14.04安装有道词典
Ubuntu14.04安装有道词典之前要更新系统: sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade 在有道官网下载 ...
- 自己实现的数据表格控件(dataTable),支持自定义样式和标题数据、ajax等各种自定义设置以及分页自定义
一.前言 也没什么好说的嘛,用了蛮多github上开源的能够实现dataTable功能的表格插件,不过都默认绑定样式啊,数据格式也设定的比较死,所以忍不住自己实现了一个简单的可自定义样式和自定义数据返 ...
- Jenkins2 实现持续交付初次演练(MultiJob,Pipeline,Blue Ocean)
背景 项目需要用到自动部署,但可获取外网的节点机器只有一台,那只能同过主节点机器进行构建完成然后分发至对应服务器进行启动更新. 目前已尝试过三种方式: 1.Pipeline-Trigger param ...
- PHP删除文件夹及其文件
<?php function deletedir($path){ $openpath = opendir($path); while ($f = readdir($openpath)){ $fi ...
- python函数(1):初始函数
在学了前面很多python的基础类型后,我们终于可以进入下一阶段,今天我们将走进一个函数的新世界. 预习: 1.写函数,计算传入字符串中[数字].[字母].[空格] 以及 [其他]的个数 2.写函数, ...
- python爬虫从入门到放弃(一)之初识爬虫
整理这个文档的初衷是自己开始学习的时候没有找到好的教程和文本资料,自己整理一份这样的资料希望能对小伙伴有帮助 什么是爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页 ...