热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java网络编程——详解HTTP协议

HTTP协议http和httpsURLurlencode和urldecodeHTTP协议内容HTTP方法GET和POST区别状态码HTTP中headerhttp和httpshtt

HTTP协议

  • http和https
    • URL
      • urlencode和urldecode
    • HTTP协议内容
    • HTTP方法
      • GET和POST区别
    • 状态码
    • HTTP中header


http和https

http和https都是应用层协议
应用层的协议很多时候都需要来手动指定(自己定制协议),http是大佬们已经定义好的协议。(http协议简单,支持的扩展能力强,可以基于http进行自定制,节省开发成本 )
http协议基于TCP来实现
https 访问网站使用的协议类型。https(基于http实现的,只不过在http基础上引入一个加密层)

URL

网址,表示网络上的唯一一个资源的标识符
在这里插入图片描述
URL对应的path不同,获取到的页面也是不同的
URL中的服务器的ip来确定一个服务器
URL中的服务器端口来确定这个主机上的哪个进程
URL中的path来确定这个进程中所管理的哪个文件/资源

最终一次http请求得到的“网页”本质上是一个文件
在这里插入图片描述

urlencode和urldecode

urlencode
在这里插入图片描述
把url中包含的中文和特殊符号进行了转义,转义成%+十六进制数字形式
为啥要转义?
url中本身包含了一些特殊用途的符号.例如:/ &?# …这些特殊符号,不能在url的查询字符串中再出现(有可能导致浏览器解析出错)

urlencode的逆向操作urldecode
(url是http协议中的一个重要组成部分.但是url不是http的专属.可以搭配很多协议来使用)

HTTP协议内容

借助抓包工具(fidder)
在这里插入图片描述
fiddler界面上主要有三个部分
左侧:抓到的包的列表.选中你要查看某个包.
右上角:这个包的请求内容是啥.
右下角:这个包的响应内容是啥.

在这里插入图片描述
在这里插入图片描述
HTTP响应
在这里插入图片描述

HTTP方法

在这里插入图片描述

GET和POST区别

GET一般把数据放到url中
POST一般把数据放到body中

完全可以把GET的数据放到body中,也可以把POST的数据放到url中,只不过这样的用法很少见. (理论上完全可以)

在这里插入图片描述

状态码

在这里插入图片描述
在这里插入图片描述

HTTP中header

Content-Type: 数据类型(text/html等)
Content-Length: Body的长度
Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
User-Agent: 声明用户的操作系统和浏览器版本信息;
referer: 当前页面是从哪个页面跳转过来的;
location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
COOKIE: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能;
在这里插入图片描述


推荐阅读
author-avatar
多米音乐_35562359
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有