HTTP
27792 ワード
Cookieとセッションの違い
一般的にグーグルを検索すると、
Cookie:ブラウザに保存
≪セッション|Sessions|ldap≫:サーバーに保存
何を保存してるの?
ブラウザにデータを格納するという.
ブラウザは何ですか...?
エクスプローラ
URLとスクリーンレンダリング
ユーザーが要求したサーバ情報に応答して画面に表示
サーバに特定のURLの使用を要求
アドレスウィンドウURL部(リクエスト/リクエスト)
[アドレス](Address)ウィンドウの下にあるレンダリング部分(レスポンス/レスポンス)
ブラウザはサーバにサーバ応答のファイルまたはデータの保存を要求する(Cookie)
サーバではなくブラウザによって格納できる情報をCookieと呼ぶ.
ブラウザに入力したもの?サーバにデータを格納することをセッションと呼びます.
Cookie:ブラウザに格納されている値
≪セッション|Sessions|ldap≫:サーバー・メモリの低い値
request message
GET/HTTP/1.1
request method
GET, POST
express
Nodejsを使用してサーバのフレームワークを簡単に構成
クラスとライブラリの集合です
ブラウザがサーバと通信すると、
string.split(「」)を使用して文字列を配列に変換して書く
コンパイルエラーとランタイムエラー
コンパイルエラー
実行時までにエラーが発生し、実行できません.
誤字
コンパイルエラー
ランタイムエラー
コンパイルに問題はありませんが、実際に実行中にエラーが発生しました.
cors例
corsエラー:他のアドレスの情報を取得した場合
ブラウザでは、情報が異なるため、セキュリティ上の理由で中断します.
1台のサーバの同期通信
リクエスト->スレッド最終リスニングステータス
デメリット:連続テープが遅れると、待ち続けるのが問題になります.
非同期通信リクエスト->バックグラウンド送信ステータス
他のことを処理して、別の要求を待っています.
欠点の順序を保証しないと、作業順序がうまくいかない可能性があります.
リース結果の保証および処理が必要なサービスには適用されません
いつですか.
ブロックチェーンについては、データ・ウェアハウスが重要であれば
いつ非同期ですか.
今すぐ更新する必要があります
ユーザーが迅速なフィードバックを必要とする場合
npm install cors
これらのセクションは、解決に役立つモジュール(ライブラリ)です.
back/views/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HelloWorld</title>
</head>
<body>
HelloWorld
</body>
</html>
back/server.js
const express = require('express')
const nunjucks = require('nunjucks')
const app = express()
app.set('view engine', 'html')
nunjucks.configure('views',{
express:app,
})
app.get('/',(req, res) => {
// console.log(req.headers)
// res.setHeader('name', 'jch')
// res.setHeader('Set-Cookie', 'token=true') // 브라우저에 데이터를 저장하는게 쿠키 쿠키파서 쿠키를 간단하게 하는 라이브러리
res.render('index')
})
// let session = 'token=true' // 서버에서 데이터를 저장하는게 세션
app.post("/getCookie", (req,res) => {
/*const [name, value] = req.headers.cookies.split('=')
console.log(name,value)*/
// true 주면 누구나 허용
res.setHeader('Access-Control-Allow-Origin','http://localhost:4000')
// 어떤 메서드만 허용할거냐
res.setHeader('Access-Control-Allow-Methods','POST, GET, OPTIONS, DELETE')
// 쿠키 공유까지 허용
res.setHeader('Access-Control-Allow-Credentials','true')
// 헤더 Context-type
res.setHeader('Access-Control-Allow-Headers','Content-type')
res.setHeader('Set-Cookie','token=true')
res.send('test getCookie')
})
app.listen(3000,() => {
console.log(`server start`)
})
cors 사용 예제
const express = require('express')
const app = express()
const nunjucks = require('nunjucks')
const cors = require('cors')
const cookieParser = require('cookie-parser')
app.set('view engine','html')
nunjucks.configure('views',{
express:app,
})
app.use(cookieParser())
app.use(cors({
origin:['http://localhost:4000'],
credentials: true
}))
app.get('/',(req,res)=>{
res.render('index')
})
app.post('/getCookie',(req,res)=>{
// // res.setHeader('Access-Control-Allow-Origin','http://localhost:4000')
// // res.setHeader('Access-Control-Allow-Methods','POST, GET, OPTIONS, DELETE') // methods 사용여부
// // res.setHeader('Access-Control-Allow-Credentials','true')
// // res.setHeader('Access-Control-Allow-Headers','Content-type')
res.setHeader('Set-Cookie','token=true')
res.send('cookie~?')
})
app.get('/cookieParser',(req,res)=>{
res.cookie('token2','true')
res.send('cookieparser?')
})
app.listen(3000,()=>{
console.log('server start')
})
女紅
htmlのレンダリングを支援するツールを使用してuiを迅速に実現できます.
エヒオス
AxiosはNodePromiseベースのHTTPクライアントビューでjsとブラウザに推奨される通信ライブラリ.
// for GET
axios.get('your_url', {withCredentials: true});
//for POST
axios.post('your_url', data, {withCredentials: true});
//for PUT
axios.put('your_url', data, {withCredentials: true});
//for DELETE
axios.delete('your_url', data, {withCredentials: true});
// data는 특별한 사항 아니면 null을 줘야 오류가 발생하지 않는다
リクエストメソッドによって受信パラメータが異なります{withCrementures:true}Cookieを要求に含めるためのオプション値
front/views/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="https://unpkg.com/[email protected]/dist/axios.min.js"></script>
<script type="text/javascript">
function init() {
axios.post('http://localhost:3000/getCookie', null,
{
withCredentials:'true'
});
};
init();
</script>
</head>
<body>
<H1>Hello Front Server!!!</H1>
</body>
</html>
front/server.js
const express = require('express')
const app = express()
const nunjucks = require('nunjucks')
app.set('view engine', 'html')
nunjucks.configure('views', {
express:app,
})
// app.use(express.urlencoded({extended:true,}))
// app.use(express.json())
app.get('/', (req,res)=>{
res.render('index')
})
// app.post('/getCookie', (req, res)=>{
// console.log(req.body)
// res.send('됨?')
// })
app.listen(4000,() => {
console.log(`start`)
})
Reference
この問題について(HTTP), 我々は、より多くの情報をここで見つけました https://velog.io/@dalch/HTTPテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol