资讯详情

3种方式构造HTTP请求详解(HTTP4)

构造HTTP请求方式

我们通过对HTTP了解协议报头格式的学习,我们可以通过三种基本方法来构建它HTTP请求! 请求是在客户端构建的,也就是属于前端的工作! 因此,这三种结构要求大多是通过前端代码实现的,但我们也可以通过java代码基于socket来实现!

基于HTML/JS实现构造!

  • 基于form表单
  • 基于ajax

基于java实现代码结构!

  • 基于socket

form表单

HTML中的form可以构建表单HTTP请求! 我们学习以下代码!

<!--form形式结构http请求-->  <form action="https://www.csdn.net/" method="get"> <!--action 需要提交的服务器存储url,method提交请求的方法! -->     <input type="text" name="name">                 <!--这里通过input标签实现-->     <input type="password" name="password">         <!--这里的name这是一个特殊的属性,是的name保存键值对中key,专门用于http结构要求!-->     <input type="submit">             <!--提交按钮-->     </form> 

在这里插入图片描述

- <form></form> 该标签允许用户向服务器输入一些信息! 可以存储用户交互的组件 描述数据的方式, 提交到哪个页面.

所以我们通过了form表单标签可以写一个http请求!

<form action="https://www.csdn.net/" method="get"> 这里以键值对的形式 key action我们需要请求服务器的保存值url method我们通过这种方式保存请求 这里的方法只能是postget 我们知道post保存请求中要传输的数据bodyget方法要求传输的数据得到保证url中的querystring查询字符串! 我们在这里通过get构造方法,也就是说,以后会通过querystring将数据传输到服务器!

inpt标签 我们知道form标签中的组件可可以交互标签中的组件! 我们通过input标签! type该属性的值代表该属性input具有不同含义! type=text 这是一个普通的文本框! type=password 这是一个用于提交密码的文本框(输入内容不可见) type=submit 提交表单按钮,我们最终将构建我们http向服务器提交请求!

<input type="text" name="name">                
<input type="password" name="password">   

这里的name属性保存的就是querystring查询字符串中键值对中的key!

我们在输入框中输入的数据就对应了该name属性下的value值我们提交后就会在查询字符串中保存!

我们向服务器提交表单后,就构造了一个get方法的http请求!

我们发现我们已经跳转到了CSDN的网站上! 因为我们提交的服务器url就是C站的首页!

我们通过fiddler抓包,看我们构造的请求和服务器给我们返回的响应是怎样的!

GET https://www.csdn.net/?name=bug%E9%83%AD&password=666666 HTTP/1.1
Host: www.csdn.net
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: uuid_tt_dd=10_30601611580-1653459529558-297725; log_Id_pv=846; Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac=1655356530,1655382747,1655518119,1655547417; Hm_up_6bcd52f51e9b3dce32bec4a3997715ac=%7B%22islogin%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isonline%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isvip%22%3A%7B%22value%22%3A%220%22%2C%22scope%22%3A1%7D%2C%22uid_%22%3A%7B%22value%22%3A%22weixin_52345071%22%2C%22scope%22%3A1%7D%7D; Hm_ct_6bcd52f51e9b3dce32bec4a3997715ac=6525*1*10_30601611580-1653459529558-297725!5744*1*weixin_52345071; log_Id_view=1489; __51uvsct__JQTDiOVZ2pRjGa1K=53; __51vcke__JQTDiOVZ2pRjGa1K=1e84abb9-62df-5ecc-828b-e3052ffe5150; __51vuft__JQTDiOVZ2pRjGa1K=1653459532473; log_Id_click=1057; __gads=ID=f159decf46255d5e-22bbe38364d300d7:T=1653459564:RT=1653459564:S=ALNI_Ma5D0b1QWC6YQ8t-on_R6zAurFD0g; __gpi=UID=000005b633162c48:T=1653459564:RT=1655010298:S=ALNI_Mbd0__O7WINiqjmFo0HJe78mx_xOA; ssxmod_itna=eqUxBDcDu0D=34Bake5DkF6diKbMk00fOexGXhIYDZDiqAPGhDC34UeDIYGCYRRrBe+C3jjBRoqH8m4WT4YKC4I0frQ4B3DEx0=PCjeKiinDCeDIDWeDiDGR7D=xGYDj0KGWD4qDOD3qGyS+=Di8t9DdvC7uQDmTNDGup6D7QDIw6g9frVAeDSW7UxKG=DjubD/4xWHeRWH=5DbgeuDeiDtqD9lw=Dbfd3x0pymkU7wGwIbt4US+NDxBtQExDf7kGC4t5D9h6IOfkD0wEY9xpxWiez8AYRgY5NBietW7ePBg+Ci0Dz4+Dd35DuxDG4ka75qiDD==; ssxmod_itna2=eqUxBDcDu0D=34Bake5DkF6diKbMk00f2DA=uxPtD/K3KDFODxDIg8qqFGFB+oQwiXsYI1EvQw7bKMRj1/+6eoNOKGbng2INO81fi6zL/uMizdaYIy8Dg0Z9bnV80FIZXBPsk1hIg=n=R0n=VW7Q5+IQ3RbsCx9C=gvG2m5bN/y=qFOwqKyQG8v4=B7AYSO+lPqpUC3bRn8IazEFbzT6GgctB3SfmO8GDUSh7RSf/OQhrPdAPk8fRzjITkCRxdKw+OHwVQYb/oIrCR+yC6KgAucT6oFi6ueM/6w10qzQbZHZ68tTRmVimrsWGL+aE/ri7Rh/FgIrLm2OQPhfmmDuuDqhW914PEnRcQnKuAEKeuzPnFpYxqg0ATFWQmwx82Ie+oD07cGPD7=DYF=eD===; UserName=weixin_52345071; UserInfo=26ede6cf39e94eab9c6265a032aa59fa; UserToken=26ede6cf39e94eab9c6265a032aa59fa; UserNick=bug+%E9%83%AD; AU=5FF; UN=weixin_52345071; BT=1653462761522; p_uid=U010000; c_dl_prid=1654675272560_674132; c_dl_rid=1655261165060_497667; c_dl_fref=https://so.csdn.net/so/search; c_dl_fpage=/download/weixin_41174502/12247848; c_dl_um=distribute.pc_relevant.none-task-blog-2%7Edefault%7Ebaidujs_utm_term%7Edefault-0-109910474-blog-119543816.pc_relevant_antiscanv2; management_ques=1653738813836; historyList-new=%5B%22pv%E4%BF%A1%E5%8F%B7%E9%87%8F%20%E4%BA%92%E6%96%A5%E5%92%8C%E5%90%8C%E6%AD%A5%22%5D; BS_coupon=20220618; csrfToken=e_t4KDVKgBezzgQgdwsnos36; c_pref=default; c_ref=default; c_first_ref=default; c_first_page=https%3A//www.csdn.net/%3Fname%3Dbug%25E9%2583%25AD%26password%3D6666666; c_segment=13; dc_tos=rdo8dm; Hm_lpvt_6bcd52f51e9b3dce32bec4a3997715ac=1655552363; dc_sid=6f420d07abdfa80dfbad71a91b5f6c41; __vtins__JQTDiOVZ2pRjGa1K=%7B%22sid%22%3A%20%22ded005ac-68ee-549d-989b-5d0fa7f4a0a1%22%2C%20%22vd%22%3A%201%2C%20%22stt%22%3A%200%2C%20%22dr%22%3A%200%2C%20%22expires%22%3A%201655554164935%2C%20%22ct%22%3A%201655552364935%7D; c_hasSub=true; c_utm_source=702048761; logo_advert_close=1; c_page_id=default; dc_session_id=10_1655552360673.249126; c_dsid=11_1655552362461.267119
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
Sec-Fetch-User: ?1

可以看到这里的请求和我们预想构造的一样!

HTTP/1.1 200 OK
Server: openresty
Date: Sat, 18 Jun 2022 11:44:14 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Keep-Alive: timeout=20
Vary: Accept-Encoding
X-Response-Time: 376
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-download-options: noopen
x-readtime: 376
Strict-Transport-Security: max-age=31536000
Content-Length: 520755

<!doctype html><html lang="zh" data-server-rendered="true"><head><title>CSDN - 专业开发者社区</title> <meta name="keywords" content="CSDN博客,CSDN学院,CSDN论坛,CSDN直播"> <meta name="description" content="CSDN是全球知名中文IT技术交流平台,创建于1999年,包含原创博客、精品问答、职业培训、技术论坛、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区."> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui"> <meta name="referrer" content="always"> <!----> <!----> <!----> 
        <script src="https://g.csdnimg.cn/tingyun/tingyun.js"></script>
       <!----> <!----> <!----> <link rel="shortcut icon" href="https://g.csdnimg.cn/static/logo/favicon32.ico" type="image/x-icon"> <link rel="canonical" href="https://www.csdn.net"> <!----> 
          <meta name="toolbar" content={"type":"0","fixModel":"1"} />
       
          <meta name="report" content={"spm":"1000.2115"} />
       <script src="https://g.csdnimg.cn/??lib/jquery/1.12.4/jquery.min.js,user-tooltip/2.2/user-tooltip.js,lib/qrcode/1.0.0/qrcode.min.js"></script> <script src='//g.csdnimg.cn/common/csdn-report/report.js' type='text/javascript'></script> 
         <script src="https://g.csdnimg.cn/user-ordercart/2.0.1/user-ordercart.js?ts=2.0.1"></script>
       <!----> 
          <script src="https://g.csdnimg.cn/common/csdn-login-box/csdn-login-box.js"></script>
       
         <script src="https://g.csdnimg.cn/user-ordertip/3.0.2/user-ordertip.js?t=3.0.2"></script>
       <!----> <!----> <!----> <!----> 
      <script> window.TINGYUN && window.TINGYUN.init && window.TINGYUN.init(function (ty_rum) { 
           ty_rum.server = { 
           "event_timeout": 60000, "dr_threshold": 4000, "opt_custom_param_rule": [], "cross_page_delay": 3000, "router_enable": true, "fp_threshold": 2000, "token": "568934913a6343de840a781ca5eaba4b", "beacon": "wkbrs1.tingyun.com", "trace_threshold": 7000, "x_server_switch": true, "ignore_err": false, "id": "hWg-u0rE5b8", "key": "Z1Tu5hoKbGw", "fs_threshold": 4000 }; }); </script>
       <!----> 
         <script src="https://g.csdnimg.cn/common/csdn-toolbar/csdn-toolbar.js"></script>
      <link rel="stylesheet" href="https://csdnimg.cn/release/cmsfe/public/css/common.ee34ee2e.css"><link rel="stylesheet" href="https://csdnimg.cn/release/cmsfe/public/css/tpl/www-index-new/index.9322d3e1.css"></head> <body><div id="toolbarBox" style="min-height: 48px;"></div> <div id="app"><div><div class="main"><div class="page-container page-component"><div><div class="home_wrap"><div class="content_wrap"><div id="floor-nav_557" floor-index="0"><div comp-data="[object Object]" floor-data="[object Object]" class="blog-nav-tag" data-v-f8e9e086><div class="blog-nav " data-v-f8e9e086><img src="https://img-home.csdnimg.cn/images/20220107105619.png" alt class="blog-nav-down " data-v-f8e9e086> <div class="blog-nav-box" data-v-f8e9e086><ul class="def" data-v-f8e9e086><!----> <!----> <!----> <!----> <li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/back-end" data-report-click="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;back-end&quot;}" data-report-view="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;back-end&quot;}" data-v-f8e9e086>后端</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/web" data-report-click="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;web&quot;}" data-report-view="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;web&quot;}" data-v-f8e9e086>前端</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/mobile" data-report-click="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;mobile&quot;}" data-report-view="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;mobile&quot;}" data-v-f8e9e086>移动开发</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/lang" data-report-click="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;lang&quot;}" data-report-view="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;lang&quot;}" data-v-f8e9e086>编程语言</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/java" data-report-click="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;java&quot;}" data-report-view="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;java&quot;}" data-v-f8e9e086>Java</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/python" data-report-click="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;python&quot;}" data-report-view="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;python&quot;}" data-v-f8e9e086>Python</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/ai" data-report-click="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;ai&quot;}" data-report-view="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;ai&quot;}" data-v-f8e9e086>人工智能</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/big-data" data-report-click="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;big-data&quot;}" data-report-view="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;big-data&quot;}" data-v-f8e9e086>大数据</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/algo" data-report-click="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;algo&quot;}" data-report-view="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;algo&quot;}" data-v-f8e9e086>数据结构与算法</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/avi" data-report-click="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;avi&quot;}" data-report-view="{ 
         &quot;spm&quot;:&quot;1001.2100.3001.7366&quot;,&quot;extend1&quot;:&quot;avi&quot;}" data-v-f8e9e086>音视频</a></li><li  

标签: 35100d07no光电传感器35100d07pc光电传感器2565d07nc光电传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台