JavaEE初阶,网络原理HTTP报头篇

认识请求"报头(header)"

header 的整体结构格式也是"键值对"结构。每一行是一个键值对,键和值之间使用空格分割。

Host

表示服务器主机的地址和端口。

Content-Length

表示body中的数据长度,单位是字节。

对于TCP来说,一个连接上可以发送多个请求。服务器这边收到数据就得区分一下,数据是从哪里到哪里是一个完整的http请求数据。
原理:

  • 如果没有body的http请求,读到空格,就是标志结束。
  • 有body的http请求,先读取首行和header,再读到空行;在解析header中的Content-Length根据这里解析的值,来判断接下来读取的固定字节的长度。
Content-Type

表示请求的body中的数据格式。

约定了接收方如何解析body中的数据

注意: 请求和响应都会用到 Content-Type,如果有body,并且没有这两个属性都认为是非法的/错误的http报文。

User-Agent(简称UA)

表示浏览器/操作系统的属性。

格式如下:

Referer

表示这个页面是从哪个页面跳转过来的。

Cookie就是浏览器允许网页在本地硬盘存储数据的一种机制,不是让网页代码直接访问文件系统,而是通过Cookie进行间接访问。

状态码

状态码表示访问⼀个页面的结果。 (是访问成功, 还是失败, 还是其他的⼀些情况...)。

200 OK

这是⼀个最常见的状态码, 表示访问成功。

404 Not Found

没有找到资源。浏览器输⼊一个 URL, ⽬的就是为了访问对方服务器上的⼀个资源. 如果这个 URL 标识的资源不存在,那么就会出现 404。

403 Forbidden

表示访问被拒绝. 有的页面通常需要用户具有⼀定的权限才能访问(登陆后才能访问). 如果用户有登陆直接访问, 就容易见到 403。

405 Method Not Allowed

若请求的方法和服务器这边声明的注解不匹配,就会出现405.
500 Internal Server Error

服务器出现内部错误. 一般是服务器的代码执行过程中遇到了一些特殊情况(服务器异常崩溃)会产生这个状态码。
504 Gateway Timeout

当服务器负载比较大的时候, 服务器处理单条请求的时候消耗的时间就会很长, 就可能会导致出现超时的情况。
302 Move temporarily

临时重定向。在登陆页面中经常会见到 302. 用于实现登陆成功后自动跳转到主页。
301 Moved Permanently

永久重定向。当浏览器收到这种响应时, 后续的请求都会被自动改成新的地址。
状态码小结:

HTTPS

明文加密得到密文,密文解密得到明文。

证书: 服务端在使用HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端公钥的权威性。

这个证书可以理解成是一个结构化的字符串, 里面包含了以下信息:

• 证书发布机构

• 证书有效期

• 公钥

• 证书所有者

• 签名

• ...

需要注意的是:申请证书的时候,需要在特定平台⽣成查,会同时生成一对密钥,即公钥和私钥。这对密钥就是用来在网络通信中进行明文加密以及数字签名的。

相关推荐
null_null9993 小时前
宝塔nginx http转https代理
nginx·http·https
爱编程的鱼3 小时前
HTTP 是什么?它是如何工作的
网络·网络协议·http
小武~3 小时前
嵌入式Linux安全启动全解析:从原理到实战
linux·网络·安全
橘子134 小时前
Linux网络(二)——socket编程
linux·网络
报错小能手4 小时前
计算机网络自顶向下方法24——运输层 可靠数据传输 超时间隔加倍 快速重传 是回退n步还是选择重传
网络·计算机网络·php
nassi_4 小时前
文件属性获取与目录IO操作详解
linux·服务器·网络
2401_841495645 小时前
【计算机网络】计算机网络体系结构与参考模型
网络·计算机网络·ip·tcp·osi·分层结构·协议数据单元
♡喜欢做梦5 小时前
Spring MVC 响应处理:页面、数据与状态配置详解
java·javascript·spring·java-ee
计算机学姐5 小时前
基于SpringBoot的公务员考试管理系统【题库组卷+考试练习】
java·vue.js·spring boot·后端·java-ee·intellij-idea·mybatis