首页 > 编程语言 >JavaWeb-04-Http

JavaWeb-04-Http

时间:2022-11-10 20:45:10浏览次数:40  
标签:浏览器 JavaWeb 04 请求 http Accept 响应 Http 客户端

4.http

4.1 http是什么

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而 [9] 消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

  • 文本:html,字符串,~...
  • 超文本:图片,音乐,视频,定位,地图......
  • 默认端口:80

Https:安全的

  • 443

4.2 两个时代

  • http 1.0
    • HTTP/1.0:客户端与web服务器连接后,只能获得一个web资源,断开连接
  • http 2.0
    • HTTP/1.1:客户端与web服务器连接后,可以获得多个资源。

4.3 http请求

  • 客户端->发请求->服务器

百度:

Request URL: https://www.baidu.com/		请求地址
Request Method: GET			请求方法 get方法/post方法
Status Code: 200 OK			状态码:200
Remote(远程) Address: 36.152.44.95:443		远程地址
Referrer Policy: strict-origin-when-cross-origin	协议
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9		//语言
Cache-Control: max-age=0			//缓存控制
Connection: keep-alive
Cookie: BAIDUID=6F78CADB48F2B03A7D8EE0ED84A267FB:FG=1; BAIDUID_BFESS=6F78CADB48F2B03A7D8EE0ED84A267FB:FG=1; BIDUPSID=6F78CADB48F2B03A7D8EE0ED84A267FB; PSTM=1665291425; ZFY=KEcc1WvP79HRAXatl26yBQ2QzNN76Q8UWJGsgRg8H7c:C; newlogin=1; __bid_n=18409e5cc5c56c8b9e4207; BD_UPN=12314753; BA_HECTOR=8000a40k2la40124al20ael71hmen1b1e; BD_HOME=1; H_PS_PSSID=36561_37691_37584_36885_37628_37729_37536_37718_26350; ab_sr=1.0.1_ZjJmNTUzZGNlYTBhNWJjYzJlZGZjNjk5M2MwYTE3ZDM2NWUwOTBiOWI3MTFlYzA2Yzk2ZDlmYjkxN2MxNTFiNDBkMjAzMWI0YjI4M2M0MjBjODkxYWM4NGJiMDMxNjA0MzM1NTkyOWUwZDMzZjliZTk1ZDQyOTkxYzBmZTI4ZjMzYmRhMjc3MzAzY2FlOTg4ZTgyNDg4ODlhYjg0NzE0ZA==; RT="z=1&dm=baidu.com&si=c77gmld3la&ss=la6efnad&sl=4&tt=3l6&bcn=https%3A%2F%2Ffclog.baidu.com%2Flog%2Fweirwood%3Ftype%3Dperf&ld=q6iy&ul=q7px&hd=q7x2"
Host: www.baidu.com
sec-ch-ua: "Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36

1.请求行

  • 请求行中的请求方式:GET
  • 请求方式:GET,POST
    • get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效。
    • post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。

2.请求头

Accept: 告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language: 告诉浏览器,它的语言环境
cache-Control:缓存控制
Connection: 告诉浏览器,请求完成是断开还是保持连接
host:主机...

4.4 http响应

  • 服务器->响应->客户端

百度:

Bdpagetype: 1
Bdqid: 0xd8f1c9cf00177c86
Connection: keep-alive		//连接
Content-Encoding: gzip		//编码
Content-Type: text/html; charset=utf-8		//类型
Date: Mon, 07 Nov 2022 06:50:53 GMT
Server: BWS/1.1
Set-Cookie: BDSVRTM=0; path=/
Set-Cookie: BD_HOME=1; path=/
Set-Cookie: H_PS_PSSID=36561_37691_37584_36885_37628_37729_37536_37718_26350; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
Traceid: 1667803853080339303415632497672476654726
Transfer-Encoding: chunked
X-Frame-Options: sameorigin
X-Ua-Compatible: IE=Edge,chrome=1

1.响应体:

Accept: 告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language: 告诉浏览器,它的语言环境
cache-Control:缓存控制
Connection: 告诉浏览器,请求完成是断开还是保持连接
host:主机...
Refresh:高速客户端,多久刷新一次;
Location:让网页定位;

2.响应状态码(重点)

200:请求响应成功 200

3xx:请求重定向

  • 重定向:你重新到我给你的新位置去。

4xx:找不到资源 404

  • 资源不存在;

5xx:服务器代码错误 500 502:网关错误

常见面试题:

当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示出来,经历了什么?

1.域名解析:作为客户端,浏览器接收到地址之后,首先会到windows系统文件的hosts中查找是否有对应的ip地址,若没有则需要询问DNS域名解析服务器该域名对应的ip地址。(DNS缓存)

2.三次握手:获取到正确的ip地址后,客户端会与服务器建立TCP连接(三次握手),(网络层、数据链路层、物理层)

第一次握手:客户端向服务器端发送一个SYN段,该段中包含客户端的初始序列号。

第二次握手:服务器端返回客户端SYN+ACK,该端中包含服务器端的初始序列号,ACK表示,已经确定收到客户端的SYN段。

第三次握手:客户端向服务器端响应一个ACK端,ACK表示,已经确定接受到服务器端的SYN段。

3.建立起TCP连接后发起http请求,客户端向服务器端发送请求,包含请求行,请求头。主要的两种请求方式(GET与POST)

--GET:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据的内容,不安全,但高效。

--POST:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。

4.(服务器响应http请求)服务器处理请求,并返回响应,包含状态码,响应头,响应体。

5(浏览器解析http代码)浏览器收到响应,解析http代码渲染页面,并在浏览器页面展示出来。

6.(断开连接)http1.0短连接,http1.1长连接。

标签:浏览器,JavaWeb,04,请求,http,Accept,响应,Http,客户端
From: https://www.cnblogs.com/Jinx8823/p/16878701.html

相关文章

  • day15-HTTP协议02
    HTTP协议029.HTTP练习练习一请写一篇关于HTTP协议的笔记,要求:描述清楚HTTP请求头,响应头的格式请求头:响应头:请求头和响应头中各个头字段的含义(请求头和响应头......
  • Chrome 自动把 http 的 xhr 请求替换成了 https 域名
    问题描述遇到了个诡异的事情。客户反馈他们想在线上https域名下,就是要访问http的链接,但是失败了。发出去的一直是https的xhr请求。直接在控制台输入例子代码,就能......
  • [AGC040F] Two Pieces 题解
    linkSolution这个题真的挺难的。/kk看了一个下午的题解才搞懂。/fn我们发现我们如果设状态\((x,d)\)表示前面的一个点在\(x\),另一个在\(x-d\),那么三种操作相当于:......
  • vue 项目使用 charles 代理线上页面到本地后显示404
    背景某app嵌入了航管的H5页面,在测试过程中,发现其中一个页面白屏。最简单的方案就是代理到本机,看看到底是哪里的bug。线上链接:https://wtest.133.cn/hangban/vue/jipiao/h......
  • Go_day04
    Go基础语法指针指针式存储另一个变量内存地址的变量&a取出a的内存地址*b若指针b存放的式a的地址那么*b就直接指向a的内存可以直接操作其中的值指针的使用func......
  • 强化学习代码实战-04时序差分算法(SARSA)
    importnumpyasnpimportrandom#获取一个格子的状态defget_state(row,col):ifrow!=3:return'ground'ifrow==3andcol==11:......
  • KubeSphere 使用 HTTPS 协议集成 Harbor 镜像仓库指南
    作者:申红磊,青云科技容器解决方案架构师,开源项目爱好者,KubeSphereMember。上面两篇文章讲了如何部署HTTPSHarbor和对接HTTP的Harbor镜像仓库;接下来详细介绍一下,如......
  • NC207040 丢手绢
    题目描述链接:https://ac.nowcoder.com/acm/problem/207040来源:牛客网牛客幼儿园的小朋友们围成了一个圆圈准备玩丢手绢的游戏,但是小朋友们太小了,不能围成一个均匀的圆圈......
  • Ubuntu22.04配置静态IP
    1打开配置文件sudovim/etc/netplan/01-network-manager-all.yaml2输入以下配置network:version:2renderer:NetworkManagerethernets:ens33:......
  • HTTP-看这一篇就够了
    HTTP和HTTPS有什么区别1、传输过程中信息是否加密,HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL加密的超文本传输协议,信息是加密传输;2、服务端使用的端口号......