java开发系列-http协议

     2022-03-29     117

关键词:

概述

HTTP(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。这种协议用来规定通信数据的格式。

HTTP请求

浏览器往服务器发送数据称之为请求。HTTP协议中规定请求组成部分:请求行、请求头、请求体。

请求行:请求信息的第一行
请求头:请求信息的第二行到空行结束
请求体:空行一下的内容 只有POST请求才有请求体

通过Google浏览器查看一个GET请求的请求信息

请求行中说明了请求的方式,比如是GET还是POST请求。还有访问的资源、协议/版本。

GET与POST请求

GET请求会把参数放在url后面而POST请求会把参数放在请求体中,并且GET参数有大小限制,POST请求没有限制。GET请求没有请求体,而POST有请求体用于存放参数。

HTTP协议版本

HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。

HTTP 1.1的持续连接,也需要增加新的请求头来帮助实现,例如,Connection请求头的值为Keep-Alive时,客户端通知服务器返回本次请求结果后保持连接;Connection请求头的值为close时,客户端通知服务器返回本次请求结果后关闭连接。HTTP 1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头

常见的HTTP请求头

Accept: text/html, image/*  --支持数据类型 格式 大类型/小类型 ,mime类型
Accept-Charset: ISO-8859-1 --字符集
Accpet-Encoding: gzip --支持压缩
Accept:-Language: zh-cn --语言环境
Host: localhost:8080 --访问主机
If-Modified-Since: Tue, 11 Jul 2000 18:27:52 GMT --缓存文件最后修改的时间
Referer: http://localhost:8080/index.html -- 来自哪个页面 防盗链
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Cookie:
Connection: close/Keep-Alive --连接状态
Date:  Tue, 11 Jul 2000 18:27:52 GMT --时间

HTTP响应

服务器往浏览器写数据称之为响应。HTTP协议中规定响应组成部分:响应行、响应头、响应体。

通过过Google浏览器查看一个GET请求的请求行


响应行包含协议版本 状态码
常见的状态码

常见的HTTP响应头

Location: http://www.coderhong.com --跳转方向 与302一起使用
Server: apache tomcate -- 服务器型号
Content-Encoding: gzip -- 数据压缩
Content-Length: 80 --数据长度
Content-Language: zh-cn --语言环境
Content-Type: text/html; charset=GB2312 --数据类型
Last-Moddified:Tue,11 Jul 2000 18:23:51 GMT --最后修改的时间
Refresh:1; url=http://www.coderhong.com --定时刷新
Content-Disposition: attachment; filename=aaa.zip -- 下载
Set-Cookie: SS=Q0=5Lb_nQ; path=/search 
Expires: -1 -- 缓存
Cache-Control: no-cache --缓存
Pragma: no-cache -- 缓存
Connection:close/Keep-Alive --连接

网络协议系列之一:http

HTTP协议是web开发必须掌握的协议之一,文章的内容并没有按照教科书式对协议本身进行说明。这里特意将一些web开发遇到的常见问题进行了总结。也方便以后自己开发进行迅速查阅。1、Http的报文结构http的报文分为请求报文... 查看详情

网络协议系列之一:http

HTTP协议是web开发必须掌握的协议之一,文章的内容并没有按照教科书式对协议本身进行说明。这里特意将一些web开发遇到的常见问题进行了总结。也方便以后自己开发进行迅速查阅。1、Http的报文结构http的报文分为请求报文... 查看详情

rtsp协议格式解析(代码片段)

...f0c;但大多是抽象的理论介绍,从理论学习到实际上手开发往往还有一段距离。然而,没有实际开发经验的支撑,理论又很难理解到位。本系列文章将从流媒体协议的基础原理开始,通过抓包分析,并结合具体... 查看详情

九.netty入门到超神系列-netty开发http服务器(代码片段)

前言这章我们使用Netty来写一个Http服务器类似于Tomcat,当然Netty和Tomcat是有很多的异同的,比如通信协议,Tomcat是一个基于Http协议的Web容器,而Netty能够通过codec自己来编码/解码字节流,因此Netty可以通过编程自定... 查看详情

http协议学习系列

http协议学习系列1. 基础概念篇1.1 介绍 HTTP是HyperTextTransferProtocol(超文本传输协议)的缩写。它的发展是万维网协会(WorldWideWebConsortium)和Internet工作小组IETF(InternetEngineeringTaskForce)合作的结果,(他们)最终发布... 查看详情

java开发系列-cookie与session会话技术

概述会话技术:当用户打开浏览器的时候,访问不同的资源,直到用户将浏览器关闭,可以认为这是一次会话。会话技术产生是由于Http请求是一个无状态的协议,它不会记录上次访问的内容,用户在访过程中难免产生一些数据... 查看详情

爬虫入门系列:快速理解http协议

4月份给自己挖一个爬虫系列的坑,主要涉及HTTP协议、正则表达式、爬虫框架Scrapy、消息队列、数据库等内容。爬虫的基本原理是模拟浏览器进行HTTP请求,理解HTTP协议是写爬虫的必备基础,招聘网站的爬虫岗位也赫然写着熟练... 查看详情

http协议概述

...上已经形成两大主要方向,一是业务专家方向,二是测试开发方向,业务专家要求对系统的整体框架和数据流还要行业业务非常了解,测试开发要求能够自主开发测试工具,搭建测试框架来替代纯手工测试,要达到这样的水平至... 查看详情

web协议-http协议实现(代码片段)

...最近讲实现HTTP到Webservice系列协议的简单程序,并且开发代码,供爱学习的人理解HTTP协议到Webservice协议。本次开发使用NetCore5.0,实现的服务可以运行在linux和windows。原理通了只要有 查看详情

渗透测试自学系列——如何利用http协议入侵网站(代码片段)

...好,我是Lex喜欢欺负超人那个Lex擅长领域:python开发、网络安全渗透、Windows域控Exchange架构代码干货满满,建议收藏+实操!!!有问题及需要,请留言哦~~2.7.1.1.报文格式 2.7.1.1.1.请求报文格式<met... 查看详情

转载和积累系列-深入理解http协议

...rnetEngineeringTaskForce)合作的结果,(他们)最终发布了一系列的RFC,RFC1945定义了HTT 查看详情

java开发系列-电子邮箱

概述电子邮箱就是在邮箱服务器上开启的一块空间。邮箱服务器就是一个安装在计算机的服务软件,提供有邮件服务。邮件发送者发送一分邮件,需要主要流程如下:邮箱协议 查看详情

不惧面试:http协议-基础扫盲

 v博客前言先交代下背景,之前在一家公司面试.NET开发,去了先是做一份笔试题,有一半是关于HTTP协议的,技术总监直接面试,也是问一大堆HTTP协议的知识点,可能跟该公司的产品有关,该公司属于互联网公司,所以对HTTP... 查看详情

5gc基础自学系列|5gc协议系列之sbi接口http2

...家分享,谢谢支持!附上汇总贴:5G基础自学系列|汇总主要内容介绍SBI接口的协议HTTP2特点介绍HTTP2协议与HTTP1.1t协议的优势对比多路复用、头压缩、服务推送、二进制传输等介绍HTTP2协议基本概念、帧结构HTTP2 查看详情

java开发如何通过iot边缘modulesdk进行协议转换?

摘要:使用ModuleSDK开发插件应用,接入其他协议设备(如HTTP请求数据),将其他协议的数据转化为MQTT协议JSON数据上报到IoTDA。本文分享自华为云社区《​​【华为云IoTEdge开发实战】Java开发如何通过IoT边缘ModuleSDK进行协议转换... 查看详情

初入网络系列笔记http协议最简单的掌握

一、借鉴说明,本博文借鉴以下博文  1.starok,HTTP必知必会,http://www.cnblogs.com/starstone/p/4890409.html   2.CareySon,HTTP协议漫谈,http://www.cnblogs.com/CareySon/archive/2012/04/27/HTTP-Protocol.html   3.逖靖寒,浅析HTTP协议,http: 查看详情

如何用java进行移动端后台开发

java进行移动后台开发与java进行web后台开发完全一样。java原生的后台框架servlet,如果使用java后台开源框架可以选用spring+springmvc+mybatis,或者使用ssh框架。一 其实前台与后台交互常用两种协议方式: 1http协议。HTTP是一个属... 查看详情

http协议系列四—http连接(tcp连接)

http:Keep-Alive和非 Keep-Alivehttp://www.360doc.com/content/18/0108/22/44856983_720346207.shtmlhttp://www.cnblogs.com/skynet/archive/2010/12/11/1903347.html 查看详情